繁体   English   中英

Rails ActiveRecord加入查询

[英]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

确保您已声明Guesthas_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM