我正在制作酒店预订系统。我有用户、房间和预订的模型。我使用关联来链接如下:(注意,伪代码)
User has_many Reservations
User has_many Rooms, through Reservations
Room has_many Reservations
Room has_many Users, through Reservations
Reservation belongs_to Users
Reservation belongs_to Reservations
一切正常,例如我可以列出用户的预订和房间。现在我需要列出所有当前未预订的房间。我尝试了以下似乎不起作用的方法:
reservations = Reservation.where('start > ? AND end < ?', Time.now, Time.now).select('room_id')
if reservations.empty?
@rooms = Room.all
else
@rooms = Room.where('id not in (?)',
reservations)
end
我想知道是否有一个 ActiveRecord 方法可以为我做到这一点?我尝试在房间上强制 LEFT JOIN 以获取结束日期 < 现在的所有房间,但这也不起作用。
非常感谢您的帮助!