JOIN表请求检索在请求的时间段内尚未预订的所有房间

时间:2016-05-23 14:53:27

标签: sql ruby-on-rails activerecord

我有一个带有room模型的rails应用程序has_many bookings。 我的预订表格有room_idstart_dateend_date

在我的表单中,我向用户询问他希望预订房间的时间段:params[:from], params[:to]

我需要从db中检索所请求的时间段内未预订的所有房间。我认为这个请求可以用两组的交集来表示: A)所有未预订的房间start_dateparams[:from]之间params[:to] B)所有未预订end_date params[:from]params[:to]之间的客房 C)所有未在params[:from]之前和params[:to]之后使用start_date进行预订的客房

我想出了这个

Room.joins(:bookings).where("bookings.start_date >= ? AND <= ?", params[:from], params[:to])

但这只是部分回答问题。如何编写AR请求(SQL或AR),以检索在请求的时间段内未预订的所有房间。

0 个答案:

没有答案