这就是模型的结构。
User has_many :properties
Property has_many :rooms
Room has_many :bookings
Booking belongs_to :Room
booking
有一个名为check_in
的表格属性。因此,为了获得用户的所有预订房间,我可以在下面进行
创建一个房间数组并循环遍历每个房间 客房= []
然后为每个房间做下面的代码
这适用于从房间级别查询
room.bookings.where("check_in == ?", Time.zone.now.beginning_of_day)
我可以创建几个循环并获得结果。但是有一种有效的方法吗?
答案 0 :(得分:2)
查询时加入表格。
为特定用户获取一组房间:
Room.joins(property: :user)
.where(
users: { id: id_of_particular_user },
bookings: { check_in: Time.zone.now.beginning_of_day }
)