ホテル予約システムを作っています。ユーザー、部屋、予約のモデルがあります。次のように関連付けを使用してリンクしました: (メモ、疑似コード)
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 メソッドがあるかどうか疑問に思いましたか? 終了日が < now であるすべての部屋を取得するために、部屋に LEFT JOIN を強制しようとしましたが、それもうまくいきませんでした。
助けてくれて本当にありがとうございます!