[英]Rails ActiveRecord Joining Queries
我目前使用两个查询来解决我的问题,我确信可以将它们合并为一个。 我目前有:
guest = Guest.find_by(email: params[:email].downcase)
booking = Booking.find_by(guest_id: guest.id)
来宾和预订模式是相关的 - 一位客人有很多预订。
我想我在Rails指南上看到了如何只使用一个查询来执行此操作,但我找不到该页面。
有几种方法。 主要目的不是写较少的行,而是要有可读的代码。
我是这样做的兄弟:
# For style and readability, put this in a separate line:
email = params[:email].downcase
# then:
bookings = Guest.find_by( email: email ).bookings
确保您已声明Guest
类has_many :bookings
。
既然您已经建立了模型关联,那么答案就比您想象的要简单得多:
bookings = Guest.find_by_email(params[:email].downcase).bookings
在这种情况下不需要连接。
如果我没弄错的话你可以试试
Booking.joins(:guest).where(guests: {email: params[:email].downcase}).all
有关更多信息,请查看http://guides.rubyonrails.org/active_record_querying.html 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.