คำถามติดแท็ก ruby-on-rails

Ruby on Rails เป็นโอเพ่นซอร์สเฟรมเวิร์กแบบเต็มเว็บแอ็พพลิเคชันที่เขียนใน Ruby มันเป็นไปตามรูปแบบกรอบ MVC ที่เป็นที่นิยมและเป็นที่รู้จักกันดีในเรื่องแนวทาง

6
การใช้ตัวช่วยในโมเดล: ฉันจะรวมการพึ่งพาตัวช่วยได้อย่างไร
ฉันกำลังเขียนแบบจำลองที่จัดการการป้อนข้อมูลของผู้ใช้จากพื้นที่ข้อความ ทำตามคำแนะนำจากhttp://blog.caboo.se/articles/2008/8/25/sanitize-your-users-html-inputฉันกำลังล้างอินพุตในโมเดลก่อนบันทึกลงในฐานข้อมูลโดยใช้ before_validate โทรกลับ. ส่วนที่เกี่ยวข้องของแบบจำลองของฉันมีลักษณะดังนี้: include ActionView::Helpers::SanitizeHelper class Post < ActiveRecord::Base { before_validation :clean_input ... protected def clean_input self.input = sanitize(self.input, :tags => %w(b i u)) end end ไม่จำเป็นต้องพูดมันไม่ได้ผล ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อพยายามบันทึกโพสต์ใหม่ undefined method `white_list_sanitizer' for #<Class:0xdeadbeef> เห็นได้ชัดว่า SanitizeHelper สร้างอินสแตนซ์ของ HTML :: WhiteListSanitizer แต่เมื่อฉันผสมลงในโมเดลของฉันมันไม่พบ HTML :: WhiteListSanitizer ทำไม? ฉันจะทำอย่างไรเพื่อแก้ไขปัญหานี้

3
วิธีใดเป็นวิธีที่ยอดเยี่ยมในการเพิ่มคลาสให้กับองค์ประกอบ HTML ในมุมมอง
บางครั้งฉันต้องเพิ่มคลาสให้กับองค์ประกอบ html ตามเงื่อนไข ปัญหาคือฉันไม่สามารถหาวิธีที่สะอาดได้ นี่คือตัวอย่างของสิ่งที่ฉันได้ลอง: <div <%= if @status = 'success'; "class='ok'"; end %>> some message here </div> หรือ <% if @status == 'success' %> <div class='success'> <% else %> <div> <% end %> some message here </div> ฉันไม่ชอบวิธีแรกเพราะมันดูแออัดและอ่านยาก ฉันไม่ชอบแนวทางที่สองเพราะการทำรังถูกทำให้เสียหาย มันเป็นการดีที่จะใส่ไว้ในแบบจำลอง (บางอย่างเช่น@status.css_class) แต่นั่นไม่ได้อยู่ที่นั่น คนส่วนใหญ่ทำอะไร?

16
ข้ามการโทรกลับใน Factory Girl และ Rspec
ฉันกำลังทดสอบโมเดลด้วยการโทรกลับหลังสร้างที่ฉันต้องการเรียกใช้ในบางครั้งเท่านั้นในขณะทดสอบ ฉันจะข้าม / เรียกใช้การโทรกลับจากโรงงานได้อย่างไร class User < ActiveRecord::Base after_create :run_something ... end โรงงาน: FactoryGirl.define do factory :user do first_name "Luiz" last_name "Branco" ... # skip callback factory :with_run_something do # run callback end end

3
การแสดงผล JSON ในคอนโทรลเลอร์
ฉันกำลังอ่านหนังสือและในบทหนึ่งเกี่ยวกับตัวควบคุมเมื่อพูดถึงการเรนเดอร์สิ่งต่าง ๆ สำหรับ JSON มันมีตัวอย่างเช่นนี้ แต่ไม่ได้ลงรายละเอียดดังนั้นฉันจึงไม่สามารถเข้าใจภาพรวมที่ใหญ่กว่าที่ตัวอย่างนี้เหมาะ: render :json => @projects, :include => tasks และตัวอย่างบางส่วนกับ JSONP ที่ใช้กับฟังก์ชันการโทรกลับ: render :json => @record, :callback => 'updateRecordDisplay' ใครสามารถอธิบายสิ่งเหล่านี้ได้หรือไม่?

4
การทดสอบตัวควบคุม RSpec - การตอบสนองที่ว่างเปล่าร่างกาย
ฉันติดปัญหาเมื่อทดสอบคอนโทรลเลอร์ด้วย RSpec - response.body call ส่งคืนสตริงว่างเสมอ ในเบราว์เซอร์ทุกอย่างแสดงผลอย่างถูกต้องและการทดสอบคุณสมบัติแตงกวาดูเหมือนจะทำให้ถูกต้อง แต่ RSpec ก็ล้มเหลวทุกครั้ง ความคาดหวังอื่น ๆ เกี่ยวกับวัตถุตอบสนองเช่นการresponse.should render_template('index')ส่งผ่านโดยไม่มีปัญหาใด ๆ คุณเคยพบปัญหานี้มาก่อนหรือไม่? บางที html ตอบกลับสามารถหาได้ด้วยวิธีอื่น? สำหรับเวอร์ชัน Rails 2.1.0, RSpec 1.2.7

14
Gem :: LoadError สำหรับ mysql2 gem แต่มีอยู่ใน Gemfile แล้ว
Gem::LoadError Specified 'mysql2' for database adapter, but the gem is not loaded. Add `gem 'mysql2'` to your Gemfile ข้อผิดพลาดนี้เกิดขึ้นขณะโหลดไฟล์ต่อไปนี้: active_record/base นี่เป็นข้อผิดพลาดที่ฉันได้รับจากการเรียกใช้เซิร์ฟเวอร์ราง The mysql2 gem has been added to the Gemfile as well. ฉันทำเสร็จbundle installแล้วและลองรีสตาร์ทเซิร์ฟเวอร์ แต่ยังคงได้รับข้อผิดพลาด

13
ExecJS :: RuntimeError บน Windows ที่พยายามทำตาม rubytutorial
UPDATE: คำแนะนำของColinในการลบบรรทัด // = require_tree ได้แก้ไขปัญหาแล้ว ฉันเสียเวลาไปกว่า 2 วันในการพยายามทำตามทุกข้อเสนอแนะและแก้ไขปัญหาของฉัน ฉันพยายามติดตามหนังสือhttp://ruby.railstutorial.orgบนเครื่อง windows และไม่สามารถผ่านข้อผิดพลาดที่น่ารังเกียจต่อไปนี้ไปได้ตลอดชีวิต ExecJS::RuntimeError in Static_pages#home Showing C:/Users/.../bootcamp-sample-app/app/views/layouts/application.html.erb where line #6 raised: ["ok","(function() {\n\n\n\n}).call(this);\n"] (in C:/Users/.../bootcamp-sample-app/app/assets/javascripts/sessions.js.coffee) Extracted source (around line #6): 3: <head> 4: <title><%= full_title(yield(:title)) %></title> 5: <%= stylesheet_link_tag "application", media: "all" %> 6: <%= javascript_include_tag "application" %> 7: <%= …

12
ทดสอบว่าสตริงเป็นตัวเลขใน Ruby on Rails หรือไม่
ฉันมีสิ่งต่อไปนี้ในตัวควบคุมแอปพลิเคชันของฉัน: def is_number?(object) true if Float(object) rescue false end และเงื่อนไขต่อไปนี้ในคอนโทรลเลอร์ของฉัน: if mystring.is_number? end เงื่อนไขคือการโยนundefined methodข้อผิดพลาด ฉันเดาว่าฉันกำหนดis_numberผิด ... ?

6
คุณจะซ่อนเอาต์พุตฐานข้อมูลในคอนโซล Rails ได้อย่างไร
ใน Rails เวอร์ชันใหม่กว่าฉันเดาว่าตั้งแต่ 3 ขึ้นไปคิวรีฐานข้อมูลจะส่งออกไปยังคอนโซล สิ่งนี้มีประโยชน์เกือบตลอดเวลา แต่คุณจะซ่อนมันได้อย่างไรเมื่อคุณไม่ต้องการเห็น

14
ทำไม Active Record ทั้งหมดถึงเกลียดชัง? [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดขึ้นมาใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ขณะที่ผมได้เรียนรู้มากขึ้นเกี่ยวกับ OOP และเริ่มต้นที่จะใช้รูปแบบการออกแบบต่างๆผมให้กลับมาที่กรณีที่มีผู้เกลียดActive Record บ่อยครั้งที่ผู้คนพูดว่ามันปรับขนาดได้ไม่ดี (โดยอ้างว่า Twitter เป็นตัวอย่างหลักของพวกเขา) - แต่ก็ไม่มีใครอธิบายได้ว่าทำไมมันถึงปรับขนาดได้ไม่ดี และ / หรือวิธีบรรลุข้อดีของ AR โดยไม่มีข้อเสีย (ผ่านรูปแบบที่คล้ายกัน แต่แตกต่างกัน?) หวังว่านี่จะไม่กลายเป็นสงครามศักดิ์สิทธิ์เกี่ยวกับรูปแบบการออกแบบ - ทั้งหมดที่ฉันอยากรู้คือ **** โดยเฉพาะ **** มีอะไรผิดปกติกับ Active Record ถ้ามันปรับขนาดได้ไม่ดีทำไมล่ะ? มันมีปัญหาอะไรอีก?

3
Rails ซ้อนรูปแบบ has_many: ถึงวิธีแก้ไขแอตทริบิวต์ของ join model?
คุณจะแก้ไขแอตทริบิวต์ของโมเดลการเข้าร่วมได้อย่างไรเมื่อใช้ accept_nested_attributes_for ฉันมี 3 โมเดล: หัวข้อและบทความที่ Linkers เข้าร่วม class Topic < ActiveRecord::Base has_many :linkers has_many :articles, :through => :linkers, :foreign_key => :article_id accepts_nested_attributes_for :articles end class Article < ActiveRecord::Base has_many :linkers has_many :topics, :through => :linkers, :foreign_key => :topic_id end class Linker < ActiveRecord::Base #this is the join model, has …

17
ใช้ประโยชน์จากอักขระตัวแรกของสตริงเท่านั้นและปล่อยให้คนอื่นอยู่คนเดียว? (ราง)
ฉันกำลังพยายามทำให้ Rails ใช้ประโยชน์จากอักขระตัวแรกของสตริงและปล่อยให้คนอื่น ๆ เป็นแบบที่เป็นอยู่ ฉันกำลังประสบปัญหาที่ทำให้ "ฉันมาจากนิวยอร์ก" กลายเป็น "ฉันมาจากนิวยอร์ก" ฉันจะใช้วิธีใดในการเลือกอักขระตัวแรก ขอบคุณ แก้ไข:ฉันพยายามใช้สิ่งที่ macek แนะนำ แต่ฉันได้รับข้อผิดพลาด"วิธีการที่ไม่ได้กำหนดเป็นตัวพิมพ์ใหญ่" รหัสทำงานได้ดีโดยไม่มีบรรทัดตัวพิมพ์ใหญ่ ขอบคุณสำหรับความช่วยเหลือ! def fixlistname! self.title = self.title.lstrip + (title.ends_with?("...") ? "" : "...") self.title[0] = self.title[0].capitalize errors.add_to_base("Title must start with \"You know you...\"") unless self.title.starts_with? 'You know you' end แก้ไข 2:ใช้งานได้ ขอบคุณสำหรับความช่วยเหลือ! แก้ไข 3:เดี๋ยวก่อนไม่ฉันไม่ได้ ... …

5
erb, haml หรือ slim: อันไหนที่คุณแนะนำ? และทำไม? [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดขึ้นมาใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันกำลังเรียนรู้ Rails และฉันได้เห็นเครื่องมือเทมเพลตเหล่านี้ ฉันไม่มีประสบการณ์กับพวกเขา (เฉพาะ erb) แต่ในฐานะที่ฉันเป็นมือใหม่ฉันเลยสับสนจริงๆ คุณแนะนำข้อใดและเพราะเหตุใด Erb, Haml หรือ Slim? โปรดบอกเหตุผลของคุณที่ชอบมากกว่าคนอื่น และหากคุณมีคำแนะนำอื่น ๆ โปรดแจ้งให้เราทราบ แก้ไข: ฉันไม่ได้มองหาผู้ชนะที่นี่ ฉันแค่อยากฟังความคิดเห็นของคุณเกี่ยวกับพวกเขาไวยากรณ์ความเร็วในการดำเนินการและอื่น ๆ

4
ค้นหานามสกุลของชื่อไฟล์ใน Ruby
ฉันกำลังทำงานในส่วนการอัปโหลดไฟล์ของแอป Rails แอปจะจัดการไฟล์ประเภทต่างๆแตกต่างกันไป ฉันต้องการสร้างรายการนามสกุลไฟล์ที่อนุญาตพิเศษเพื่อตรวจสอบไฟล์ที่อัปโหลดเพื่อดูว่าควรไปที่ใด ชื่อไฟล์ทั้งหมดเป็นสตริง ฉันต้องการวิธีตรวจสอบเฉพาะส่วนขยายของสตริงชื่อไฟล์ ชื่อไฟล์ทั้งหมดอยู่ในรูปแบบของ "some_file_name.some_extension"

5
ค้นหาแถวที่มีช่องที่ซ้ำกันหลายช่องด้วย Active Record, Rails & Postgres
วิธีใดดีที่สุดในการค้นหาระเบียนที่มีค่าซ้ำกันในหลายคอลัมน์โดยใช้ Postgres และ Activerecord ฉันพบวิธีแก้ปัญหานี้ที่นี่ : User.find(:all, :group => [:first, :email], :having => "count(*) > 1" ) แต่ดูเหมือนจะใช้ไม่ได้กับ postgres ฉันได้รับข้อผิดพลาดนี้: PG :: GroupingError: ข้อผิดพลาด: คอลัมน์ "parts.id" ต้องปรากฏในคำสั่ง GROUP BY หรือใช้ในฟังก์ชันการรวม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.