0

次の 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 のコレクションを取得する方法が見つかりませんでした。

4

1 に答える 1

0

試す

   channels = Channel.include(:events).all
   channels.events.current
于 2012-10-23T12:57:21.467 に答える