0

我有这两个相关的 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加入时事的 s 列表。对于单个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 回答