我有这两个相关的 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 集合。