我有两个相关的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
s及其当前事件的集合,而不会遇到N + 1查询问题。
答案 0 :(得分:0)
尝试
channels = Channel.include(:events).all
channels.events.current