0

私は会場のコレクションを持っており、これらの会場には、その週のこの時間に会場が現在開いているかどうかを知らせるためのOpenTimesがあります。現在開いているすべての会場に問い合わせたい。

私は現在、open_timesを通過し、open_timeの:startフィールドと:endフィールドの範囲内にあるvenue.rbかどうかをチェックする「defactive」と呼ばれるメソッドを持っています。Time.now

現在開いているすべての会場を提供するクエリを作成するにはどうすればよいですか?

次のようなスコープを作成したいと思っていますVenue.all.currently_available

4

1 に答える 1

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

于 2012-05-21T16:08:35.230 に答える