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

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

6
Rails Model หาที่ไม่เท่ากัน
ฉันจะค้นหาระเบียนในฐานข้อมูลของฉันในสภาพที่ไม่เท่ากันได้อย่างไร ตอนนี้ฉันมีสิ่งนี้แล้ว แต่มีวิธีการพูดแบบรางที่แปลกใหม่หรือไม่? GroupUser.where('user_id != ?',me)

6
แอตทริบิวต์ที่ซ้อนกันพารามิเตอร์ที่ไม่อนุญาต
ฉันมีBillวัตถุซึ่งมีDueวัตถุมากมาย วัตถุยังเป็นของDue Personฉันต้องการแบบฟอร์มที่สามารถสร้างBillและลูก ๆDuesทั้งหมดในหน้าเดียว ฉันกำลังพยายามสร้างแบบฟอร์มโดยใช้แอตทริบิวต์ที่ซ้อนกันคล้ายกับในRailscastนี้ รหัสที่เกี่ยวข้องแสดงอยู่ด้านล่าง: due.rb class Due < ActiveRecord::Base belongs_to :person belongs_to :bill end bill.rb class Bill < ActiveRecord::Base has_many :dues, :dependent => :destroy accepts_nested_attributes_for :dues, :allow_destroy => true end bills_controller.rb # GET /bills/new def new @bill = Bill.new 3.times { @bill.dues.build } end ค่าใช้จ่าย / _form.html.erb <%= …

12
ค้นหา vs find_by เทียบกับที่ไหน
ฉันยังใหม่กับราง สิ่งที่ฉันเห็นว่ามีหลายวิธีในการค้นหาบันทึก: find_by_<columnname>(<columnvalue>) find(:first, :conditions => { <columnname> => <columnvalue> } where(<columnname> => <columnvalue>).first และดูเหมือนว่าพวกเขาทั้งหมดจะสร้าง SQL เหมือนกันทุกประการ นอกจากนี้ฉันเชื่อว่าสิ่งเดียวกันนี้เป็นจริงสำหรับการค้นหาหลายระเบียน: find_all_by_<columnname>(<columnvalue>) find(:all, :conditions => { <columnname> => <columnvalue> } where(<columnname> => <columnvalue>) มีกฎง่ายๆหรือคำแนะนำว่าควรใช้ข้อใด?

14
Uniq โดย object attribute ใน Ruby
วิธีใดที่สวยงามที่สุดในการเลือกอ็อบเจ็กต์ในอาร์เรย์ที่ไม่ซ้ำกันเมื่อเทียบกับแอตทริบิวต์อย่างน้อยหนึ่งรายการ วัตถุเหล่านี้ถูกเก็บไว้ใน ActiveRecord ดังนั้นการใช้วิธีการของ AR ก็ใช้ได้เช่นกัน

3
ฉันจะตั้งค่าการยืนยันอีเมลกับ Devise ได้อย่างไร?
มีบทช่วยสอนที่อธิบายวิธีตั้งค่าอีเมลยืนยันการสมัครของ Devise ตั้งแต่เริ่มต้น (ทั้งในการพัฒนาและการผลิต) กล่าวคือหากคุณไม่ได้ตั้งค่า Action Mailer ไว้? การค้นหาของ Google เพิ่งพบชิ้นส่วนต่างๆที่เกี่ยวข้องกับเรื่องนี้ ไม่มีชิ้นไหนอธิบายได้เพียงพอและฉันไม่แน่ใจว่ามันเข้ากันได้อย่างไร มีคำอธิบายทีละขั้นตอนหรือแม้แต่สิ่งที่อธิบายขั้นตอนเริ่มต้นหรือไม่? ในที่สุดก็ใช้งานได้ ทำตามขั้นตอนทั้งหมดในคำตอบที่ยอมรับด้านล่างจากนั้นเพิ่มสิ่งต่อไปนี้ในไฟล์ environment.rb ของฉัน: ActionMailer::Base.delivery_method = :smtp ActionMailer::Base.smtp_settings = { :tls => true, :address => "smtp.gmail.com", :port => 587, :domain => "gmail.com", :authentication => :login, :user_name => "[username]", :password => "[password]" }

5
เหตุใดการใช้ราง default_scope จึงมักแนะนำให้ใช้
ทุกที่ บน อินเทอร์เน็ตคนพูดถึงว่าการใช้ทางรถไฟเป็นความคิดที่ไม่ดีและความนิยมสูงสุดสำหรับใน StackOverflow มีเกี่ยวกับวิธีการเขียนทับมัน สิ่งนี้ทำให้รู้สึกสับสนและมีคำถามที่ชัดเจน (ฉันคิดว่า)default_scopedefault_scope เหตุใดจึงdefault_scopeแนะนำให้ใช้รางด้วย?

2
ใหญ่แค่ไหนสำหรับตาราง PostgreSQL?
ฉันกำลังดำเนินการออกแบบโครงการ RoR สำหรับ บริษัท ของฉันและทีมพัฒนาของเราได้พบกับการถกเถียงกันเล็กน้อยเกี่ยวกับการออกแบบโดยเฉพาะฐานข้อมูล เรามีรูปแบบที่เรียกMessageว่าต้องคงอยู่ เป็นโมเดลขนาดเล็กมากที่มีคอลัมน์ db เพียงสามคอลัมน์นอกเหนือจาก id แต่จะมีโมเดลเหล่านี้จำนวนมากเมื่อเราไปที่การผลิต เรากำลังดูการแทรกมากถึง 1,000,000 ครั้งต่อวัน โมเดลจะถูกค้นหาโดยคีย์ต่างประเทศสองคีย์เท่านั้นซึ่งสามารถจัดทำดัชนีได้ เช่นกันแบบจำลองไม่จำเป็นต้องถูกลบ แต่เราไม่จำเป็นต้องเก็บไว้เมื่อมันมีอายุประมาณสามเดือน ดังนั้นสิ่งที่เราสงสัยคือการใช้ตารางนี้ใน Postgres จะทำให้เกิดปัญหาด้านประสิทธิภาพที่สำคัญหรือไม่? ใครมีประสบการณ์เกี่ยวกับฐานข้อมูล SQL ขนาดใหญ่มากช่วยบอกเราได้หรือไม่ว่าปัญหานี้จะเป็นปัญหา? ถ้าเป็นเช่นนั้นเราควรเลือกทางเลือกใด

26
ไม่สามารถหยุดเซิร์ฟเวอร์ราง
ฉันยังใหม่กับรางและฉันใช้เครื่อง Ubuntu และ rubymine IDE ปัญหาคือฉันไม่สามารถหยุดเซิร์ฟเวอร์รางได้ ฉันพยายามหยุดเซิร์ฟเวอร์โดยการฆ่ากระบวนการทางรถไฟ แต่เมื่อฉันเรียกใช้pgrep -l railsไม่พบกระบวนการดังกล่าว ดังนั้นฉันสามารถฆ่ากระบวนการทับทิมได้เท่านั้น แต่เซิร์ฟเวอร์จะไม่หยุด ฉันพยายาม./script/server stop(ตั้งแต่เริ่มวิ่ง./script/server start) แต่ก็ไม่ได้ผล Googling ไปรอบ ๆ และค้นหาโพสต์ stackoverflow ฉันพยายามเปลี่ยนพอร์ตการฟังของพอร์ต localhost แต่ไม่ประสบความสำเร็จ มีใครช่วยได้บ้าง

13
จะตรวจสอบช่องทำเครื่องหมายใน Capybara ได้อย่างไร?
ฉันใช้ Rspec และ Capybara ฉันจะเขียนขั้นตอนในการตรวจสอบได้checkboxอย่างไร? ฉันพยายามcheckตามค่า แต่ไม่พบcheckboxไฟล์. ฉันไม่แน่ใจว่าต้องทำอย่างไรเนื่องจากฉันมี ID เดียวกันและมีค่าต่างกัน นี่คือรหัส: <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="61" name="cityID"> <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="62" name="cityID"> <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="63" name="cityID">

5
สร้างเทียบกับใหม่ใน Rails 3
ใน Rails 3 เอกสารที่buildวิธีการสำหรับสมาคมอธิบายว่าเป็นเช่นเดียวกับnewวิธีการ แต่มีการกำหนดโดยอัตโนมัติของต่างประเทศที่สำคัญ ตรงจากเอกสาร: Firm#clients.build (similar to Client.new("firm_id" => id)) ฉันเคยอ่านที่คล้ายกัน อย่างไรก็ตามเมื่อฉันใช้new(เช่นsome_firm.clients.newไม่มีพารามิเตอร์ใด ๆ ) การfirm_idเชื่อมโยงของลูกค้าใหม่จะถูกสร้างขึ้นโดยอัตโนมัติ ฉันกำลังดูผลลัพธ์อยู่ในคอนโซลตอนนี้! ฉันพลาดอะไรไปรึเปล่า? เอกสารล้าสมัยไปหน่อย (ไม่น่าเป็นไปได้) หรือเปล่า อะไรคือความแตกต่างระหว่างbuildและnew?

24
ดูอายุของคนใน Ruby
ฉันต้องการระบุอายุจากวันเกิดของบุคคลนั้น now - birthday / 365ไม่ได้ผลเพราะบางปีมี 366 วัน ฉันคิดรหัสต่อไปนี้: now = Date.today year = now.year - birth_date.year if (date+year.year) > now year = year - 1 end มีวิธีการคำนวณอายุของ Ruby'ish เพิ่มเติมหรือไม่?

2
Ruby on Rails: รับค่าสูงสุดจากคอลัมน์ DB
ขณะนี้ฉันสามารถสร้างแบบสอบถาม SQL แบบตรงบนฐานข้อมูลของฉัน: SELECT MAX(bar) FROM table_name และส่งกลับด้วยค่าสูงสุดในตารางนั้น เมื่อฉันทำสิ่งที่ฉันคิดว่าเป็นการโทรที่เทียบเท่ากันใน Rails มันไม่ได้ผล ฉันกำลังโทร: Bar.all(:select => "Max(bar)") สิ่งนี้กลับมาพร้อมกับ: [#<Bar >] ในคอลัมน์ที่ฉันโทรหาเป็นชุดของหมายเลขระบุตัวตนฉันกำลังมองหาหมายเลขที่ใหญ่ที่สุด มีวิธีอื่นในการเข้าถึงสิ่งนี้ใน Rails หรือไม่?
125 sql  ruby-on-rails 

21
ราง - ประดิษฐ์ - การจัดการ - devise_error_messages
ในหน้าแก้ไขผู้ใช้ของฉันมีบรรทัดดังนี้: <%= devise_error_messages! %> ปัญหาคือสิ่งนี้ไม่ได้แสดงข้อผิดพลาดตามวิธีมาตรฐานที่แอปอื่น ๆ ทำ: <% flash.each do |key, value| %> <div class="flash <%= key %>"><%= value %></div> <% end %> คำถามของฉันคือฉันจะทำให้ข้อความแสดงข้อผิดพลาดของอุปกรณ์ทำงานเหมือนกับคนอื่น ๆ ที่ใช้แฟลชได้อย่างไรแต่ละ? ขอบคุณ

8
ใน Rails คุณสร้าง JSON โดยใช้มุมมองอย่างไร
สมมติว่าคุณอยู่ในตัวควบคุมผู้ใช้ของคุณและคุณต้องการได้รับการตอบกลับ json สำหรับคำขอการแสดงคงจะดีถ้าคุณสามารถสร้างไฟล์ในมุมมอง / ผู้ใช้ / dir ของคุณชื่อ show.json และหลังจากผู้ใช้ของคุณ # show การดำเนินการเสร็จสิ้นจะแสดงไฟล์ ขณะนี้คุณต้องทำบางสิ่งตามแนวของ: def show @user = User.find( params[:id] ) respond_to do |format| format.html format.json{ render :json => @user.to_json } end end แต่คงจะดีถ้าคุณสามารถสร้างไฟล์ show.json ซึ่งจะแสดงผลโดยอัตโนมัติดังนี้: def show @user = User.find( params[:id] ) respond_to do |format| format.html format.json end end …


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