私には 2 つのモデルがfoo
ありbar
、 にfoo
は多くの がありbars
ます。
Bar
は一定期間発生するイベントなので、ActiveRecord::Relation
現在アクティブなバーを持つ foo を表す を返すメソッドまたはスコープが必要です。
Foo
これは、スコープを持つクラスでは簡単です。
class Foo < ActiveRecord::Base
has_many :bars
scope :has_current_bars, joins(:bars).where('bar.foo_id IS NOT NULL').where('bar.starts_at <= ?', DateTime.now).where('bar.ends_at >= ?', DateTime.now)
これについて私が気に入らないのはfoo
、 の内部について非常に多くのことを知る必要があるということですbar
。
おそらく にスコープを追加することで、これを書き直すことができるbar
ので、属性foo
について知る必要はありませんか?bar