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

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

13
Haml: ควบคุมช่องว่างรอบข้อความ
ในเทมเพลต Rails ของฉันฉันต้องการทำ HTML ขั้นสุดท้ายให้สำเร็จโดยใช้ HAML: I will first <a href="http://example.com">link somewhere</a>, then render this half of the sentence if a condition is met เทมเพลตที่ใกล้เข้ามา: I will first = link_to 'link somewhere', 'http://example.com' - if @condition , then render this half of the sentence if a condition is met อย่างไรก็ตามคุณอาจสังเกตว่าสิ่งนี้ทำให้เกิดช่องว่างระหว่างลิงก์และลูกน้ำ …


4
วิธีตรวจสอบรหัสผ่านของผู้ใช้ใน Devise
ฉันมีปัญหาในการจับคู่รหัสผ่านผู้ใช้โดยใช้อัญมณีประดิษฐ์ในราง รหัสผ่านผู้ใช้ที่เก็บไว้ในฐานข้อมูลของฉันซึ่งเป็นรหัสผ่านที่เข้ารหัสและฉันพยายามค้นหาผู้ใช้ด้วยรหัสผ่าน แต่ฉันไม่เข้าใจวิธีจับคู่รหัสผ่านจากแบบฟอร์มและรหัสผ่านรหัสผ่านในฐานข้อมูลของฉัน User.find_by_email_and_password(params[:user][:email], params[:user][:password])

3
วิธีเพิ่มเรกคอร์ดใน has_many: ผ่านการเชื่อมโยงในราง
class Agents << ActiveRecord::Base belongs_to :customer belongs_to :house end class Customer << ActiveRecord::Base has_many :agents has_many :houses, through: :agents end class House << ActiveRecord::Base has_many :agents has_many :customers, through: :agents end ฉันจะเพิ่มAgentsรุ่นสำหรับCustomer? วิธีนี้เป็นวิธีที่ดีที่สุดหรือไม่? Customer.find(1).agents.create(customer_id: 1, house_id: 1) ข้างต้นใช้งานได้ดีจากคอนโซลอย่างไรก็ตามฉันไม่รู้ว่าจะบรรลุสิ่งนี้ในแอปพลิเคชันจริงได้อย่างไร ลองนึกภาพว่ามีการกรอกแบบฟอร์มสำหรับลูกค้าที่ใช้house_idเป็นข้อมูลป้อนข้อมูล จากนั้นฉันจะทำสิ่งต่อไปนี้ในคอนโทรลเลอร์ของฉันหรือไม่? def create @customer = Customer.new(params[:customer]) @customer.agents.create(customer_id: @customer.id, house_id: params[:house_id]) @customer.save …

4
วิธีรับค่าเดิมของแอตทริบิวต์ใน Rails
มีวิธีรับค่าดั้งเดิมที่แอตทริบิวต์ ActiveRecord (= ค่าที่โหลดจากฐานข้อมูล) หรือไม่ ฉันต้องการสิ่งนี้ในผู้สังเกตการณ์ before_save object do_something_with object.original_name end ภารกิจคือการลบวัตถุออกจากตารางแฮช (ในความเป็นจริงย้ายไปยังคีย์อื่นในตาราง) เมื่อทำการอัปเดต

5
ฉันจะเรียงลำดับความสัมพันธ์ has_many ใน Rails โดยอัตโนมัติได้อย่างไร
ดูเหมือนจะเป็นคำถามง่ายๆ แต่ฉันไม่เคยเห็นคำตอบนี้เลย ในรางถ้าคุณมี: class Article < ActiveRecord::Base has_many :comments end class Comments < ActiveRecord::Base belongs_to :article end ทำไมคุณไม่สามารถสั่งความคิดเห็นด้วยสิ่งนี้: @article.comments(:order=>"created_at DESC") ขอบเขตการตั้งชื่อใช้งานได้หากคุณต้องการอ้างอิงเป็นจำนวนมากและแม้แต่ผู้คนก็ทำสิ่งต่างๆเช่นนี้: @article.comments.sort { |x,y| x.created_at <=> y.created_at } แต่มีบางอย่างบอกฉันว่ามันควรจะง่ายกว่านี้ ฉันขาดอะไรไป?

1
Sourcemaps ออกทีละบรรทัดใน Chrome พร้อม Ruby on Rails, Webpack และ React JS
ฉันมีปัญหาที่ซอร์สแมปที่สร้างโดย Webpack โดยใช้การinline-source-mapตั้งค่าการกำหนดค่าถูกปิดทีละบรรทัดเมื่อฉันใช้ดีบักเกอร์ Chrome devtools Webpack ได้รับการตั้งค่าภายในแอปพลิเคชัน Ruby on Rails เพื่อสร้างไฟล์ JavaScript ที่ต่อกันและไม่รวมกันซึ่งประกอบด้วยโมดูลสองสามโมดูล โมดูลเหล่านั้นส่วนใหญ่เป็นส่วนประกอบของ ReactJS และถูกแยกวิเคราะห์โดยตัวjsxโหลด จากนั้นเอาต์พุตจาก Webpack จะรวมอยู่ในapplication.jsไฟล์พร้อมกับไลบรารี JavaScript อื่น ๆ ที่สร้างโดยอัญมณี ตอนใช้eval-source-mapก็ไม่มีปัญหา บางอย่างเกี่ยวกับการใช้inline-source-mapสาเหตุที่ทำให้หมายเลขบรรทัดถูกโยนออกไปทีละรายการ การตรวจสอบ JavaScript ที่ไม่ใช่คอมโพเนนต์ React ยังคงมีปัญหานี้อยู่ดังนั้นฉันไม่คิดว่ามันเกี่ยวข้องกับการใช้ jsx

5
วิธีใช้ส่วนขยายหลักของ Active Support
ฉันติดตั้ง Active Support 3.0.3 และ Rails 3.0.3 พร้อม Ruby 1.8.7 เมื่อลองใช้1.week.agoแล้วจะได้รับ NoMethodError: undefined method 'week' for 1:Fixnum from (irb):2 ส่วนขยายหลักอื่น ๆ ดูเหมือนจะใช้งานได้ ฉันลองใช้บนคอมพิวเตอร์ของเพื่อน (ข้อกำหนดการติดตั้งเดียวกันและเวอร์ชันเดิมอยู่ในเครื่องของเขา) โดยได้ผลลัพธ์เหมือนกัน สิ่งที่ช่วยให้? ทั้งหมดนี้อยู่ใน IRB

12
Net :: SMTPAuthenticationError เมื่อส่งอีเมลจากแอป Rails (ในสภาพแวดล้อมการจัดเตรียม)
ฉันกำลังส่งอีเมลจากแอปพลิเคชัน Rails ของฉัน ทำงานได้ดีกับสภาพแวดล้อมการพัฒนา แต่ล้มเหลวในการจัดเตรียม ฉันได้รับข้อผิดพลาดต่อไปนี้: Net::SMTPAuthenticationError (534-5.7.14 <https://accounts.google.com/ContinueSignIn?plt=AKgnsbtdF0yjrQccTO2D_6) โปรดทราบว่าฉันไม่มีชื่อโดเมนสำหรับการจัดเตรียมของฉัน นี่คือการตั้งค่าของฉันใน staging.rb config.action_mailer.delivery_method = :smtp config.action_mailer.default_url_options = { :host => "my.ip.addr.here:80" } config.action_mailer.smtp_settings = { :address => "smtp.gmail.com", :port => 587, :domain => 'my.ip.addr.here:80' :user_name => "my_email_name@gmail.com", :password => "my_email_password", :authentication => 'login' } กรุณาช่วย. แก้ไข. หลังจากเพิ่ม:tls => trueตัวเลือกที่ฉันได้รับ OpenSSL::SSL::SSLError …

3
คุณจะบอก Delayed :: Job ให้ทำงานในคอนโซลได้อย่างไร
ด้วยเหตุผลบางประการ Delayed :: Job ได้ตัดสินใจที่จะเข้าคิว แต่ไม่ได้ดำเนินการใด ๆ แม้ว่าฉันจะรีสตาร์ทหลายครั้งแม้จะฆ่า -9 และเริ่มต้นใหม่ก็ตาม มันจะไม่ทำงานใด ๆ ฉันสามารถระบุงานที่เฉพาะเจาะจงและสั่งให้ทำงานใน / คอนโซลได้หรือไม่ เช่น .. Delayed::Job.find(x).run

6
แปลง UTC เป็นเวลาท้องถิ่นใน Rails 3
ฉันมีปัญหาในการแปลง UTC TimeหรือTimeWithZoneเวลาท้องถิ่นใน Rails 3 บอกว่าmomentเป็นTimeตัวแปรบางตัวใน UTC (เช่นmoment = Time.now.utc) ฉันจะแปลงmomentเป็นเขตเวลาของฉันโดยดูแล DST ได้อย่างไร (เช่นใช้ EST / EDT) อย่างแม่นยำยิ่งขึ้นฉันต้องการพิมพ์ "วันจันทร์ที่ 14 มีนาคม 9.00 น." หากเวลาตรงกับเช้าวันนี้ 9.00 น. EDT และ "วันจันทร์ที่ 7 มีนาคม 9.00 น." หากเวลาคือ 9.00 น. EST ของวันจันทร์ที่ผ่านมา หวังว่าจะมีวิธีอื่น? แก้ไข : ก่อนอื่นฉันคิดว่า "EDT" ควรเป็นเขตเวลาที่รู้จัก แต่ "EDT" ไม่ใช่เขตเวลาจริงคล้ายกับสถานะของเขตเวลามากกว่า ยกตัวอย่างเช่นมันจะไม่ทำให้รู้สึกใด ๆ Time.utc(2011,1,1).in_time_zone("EDT")ที่จะขอ …

4
วิธีใช้ has_many: ผ่านความสัมพันธ์กับ Mongoid และ Mongodb?
การใช้ตัวอย่างที่แก้ไขนี้จากคู่มือ Railsโมเดลหนึ่งการเชื่อมโยง "has_many: through" เชิงสัมพันธ์โดยใช้ mongoid เป็นอย่างไร ความท้าทายคือ mongoid ไม่รองรับ has_many: through เหมือนที่ ActiveRecord ทำ # doctor checking out patient class Physician < ActiveRecord::Base has_many :appointments has_many :patients, :through => :appointments has_many :meeting_notes, :through => :appointments end # notes taken during the appointment class MeetingNote < ActiveRecord::Base has_many :appointments has_many …

4
Rails“ validates_uniqueness_of” Case Sensitivity
นี่คือโมเดล (ฉันใช้ SQLLite3): class School < ActiveRecord::Base validates_uniqueness_of :name end ตัวอย่างเช่นหลังจากฉันเพิ่ม "เยล" ฉันไม่สามารถเพิ่ม "เยล" แต่สามารถเพิ่ม "เยล" ได้ ฉันจะทำให้กรณีการตรวจสอบความถูกต้องไม่สำคัญได้อย่างไร แก้ไข: พบแล้ว - การตรวจสอบระเบียนที่ใช้งานอยู่

1
วิธีใช้ดัชนีเฉพาะบนสองคอลัมน์ในราง
ฉันมีตารางและฉันกำลังพยายามเพิ่มดัชนีเฉพาะในสองคอลัมน์ คอลัมน์เหล่านั้นจะถูกจัดทำดัชนีด้วย ดังนั้นคำถามของฉันคือถ้าฉันสามารถลบดัชนีที่เป็นเพียงคอลัมน์เดียวหรือถ้าฉันต้องใช้ดัชนีทั้งสาม: add_index "subscriptions", ["user_id"] add_index "subscriptions", ["content_id"] add_index "subscriptions", ["user_id"], ["content_id"], :unique => true

11
ทำการโยกย้ายเพียงครั้งเดียว
ฉันพยายามเรียกใช้การย้ายข้อมูลเพียงครั้งเดียวจากทั้งกลุ่มในแอปทางรถไฟของฉัน ฉันจะทำเช่นนี้ได้อย่างไร? ฉันไม่ต้องการเรียกใช้การย้ายข้อมูลใด ๆ ก่อนหรือหลังการย้ายข้อมูล ขอบคุณ.

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