查询当前可用的场地

时间:2012-05-21 15:27:05

标签: ruby-on-rails ruby-on-rails-3

我有一系列场地,这些场地有很多OpenTimes来判断场地当前是否在一周的这个时间开放。我想查询当前开放的所有场地。

我目前在venue.rb中有一个名为'def active'的方法,它通过open_times检查Time.now是否在open_time的范围内:s​​tart和:end fields。

如何创建一个提供所有当前开放场地的查询?

我希望创建一个像Venue.all.currently_available

这样的范围

1 个答案:

答案 0 :(得分:2)

试试这个:

# in Venue class
def available?
  open_times.where(':now BETWEEN open_times.start AND open_times.end', now: Time.now).exists?
end

UPD:要查询所有打开的场地,请使用:

def self.currently_available
  joins(:open_times).
  where(':now BETWEEN open_times.start AND open_times.end', now: Time.now).
  uniq
end

致电:Venue.currently_available