次の 2 つの関連する ActiveRecord モデルがあります。
class Channel < ActiveRecord::Base
has_many :events
end
class Event < ActiveRecord::Base
belongs_to :channel
def self.current
now = Time.now.utc
where{(starts_at<=now)&(ends_at>=now)}
end
end
Channel
現在のイベントに参加して のリストを取得したい。個々のChannel
オブジェクトについては、次のコードでそれを行うことができます。
> channel = Channel.first
> channel.events.current
これは完全に機能します。Channel
ただし、N + 1クエリの問題に遭遇せずに、現在のイベントで s のコレクションを取得する方法が見つかりませんでした。