如何显示将来预订的产品?

时间:2015-04-20 13:39:04

标签: ruby-on-rails ruby sqlite activerecord

所以我有3个型号 - 预订,选框,businessuser 。预订属于marquee,marquee属于businessuser,businessuser有很多marquees。

我正在尝试在我的应用程序助手中创建一个find / where子句,该子句只返回>的marquees。当前日期和属于预订(即预订有他们的身份证)。

我目前能够展示的是有藏品的预订。但是我想让它显示预订的帐篷。

这是我在应用程序助手中的方法

 def upcomingbookings
   @bookings = Booking.all
   @futuremarquees = Booking.where("marquee_id")
 end

预订的字段为:startdatetime与Date.today进行比较

只是为了澄清商业逻辑:Marquee是一个人们可以为他们的派对预订的帐篷。所以系统中有很多马戏团。当有人预订时,它会存储marquee_id。预订有自己的变量,如startdatetime和eventtype。我正在创建一个页面,当businessuser登录时,他们可以查看他们添加到当前预订系统的所有帐单

4 个答案:

答案 0 :(得分:1)

@futuremarquees = Booking.where(startdatetime: Date.today..Float::INFINITY, marquee_id: x)

答案 1 :(得分:1)

假设一个名为startdatetime的日期字段,请尝试:

@futuremarquees = Booking.where(['startdatetime > ?', DateTime.now])

答案 2 :(得分:1)

您可以执行以下操作:

# returns Marquee records having at least one booking in the future
marquees = Marquee.includes(:booking).where('bookings.startdatetime > ?', Date.today)

如果您想查找属于特定Marquee的未来的Booking

marquees = Marquee.includes(:booking).where('bookings.startdatetime > ?', Date.today)
marquees = marquees.where(booking: { id: params[:booking_id] })

答案 3 :(得分:0)

你可以尝试做这样的事情

def upcomingbookings
 @futuremarquees = Marquee.where(['startdatetime > ?', DateTime.now] )
 # then you can do futuremarquees.marquee
end