나는 다음과 같은 한 협회룸 예약 시스템 쿼리
User:
has_many :reservations
has_many :rooms, through: :reservations
Room:
has_many :reservations
has_many :users, through: :reservations
Reservation:
belongs_to :room
belongs_to :user
나는 다음과 같은 한 분야
checkin_date, checkout_date
나는 모든 객실을 찾으려면 주어진 시간 동안 이미 예약되지 않았습니다.
다음 쿼리를 작성했지만 작동하지 않습니다. 수정 또는 더 나은 방법을 제안하십시오.
Room.joins('LEFT JOIN reservations ON reservations.room_id = rooms.id').where.not(
'reservations.checkin_at < :requested_end_date AND
reservations.checkout_at > :requested_start_date',
requested_start_date: date_begin,
requested_end_date: date_end
)
뭔가 오류? –
@ BartekGładys 예약이없는 경우 비어있는 상태가되므로 모든 객실을 반환해야합니다. – Adt