Active Record包含在哪里

时间:2013-10-04 16:18:26

标签: ruby-on-rails ruby activerecord ruby-on-rails-4 rails-activerecord

我无法获得查询语法:

我有频道,其功能类似于博客中的“类别”。我有像帖子一样的节目。 Show有一个布尔'已批准',所以它是真的还是假的。频道也有位置..频道有很多节目。

如何通过位置顺序获取所有通道,只显示已批准= true?

我尝试了这个:Channel.includes(:shows).order('channels.position'),这让我获得了正确位置的频道,虽然我已经可以channel.shows,但无论是否{{}},它都会将所有节目分配到该频道{1}}。

无论演出是否获得批准,

show.approved=true都会返回所有频道和节目。

Channel.includes(:shows).order('channels.position')仅返回已获批准的频道,跳过没有经过批准的内容的频道;但是无论节目的状态如何,我都需要返回频道,但是他们的节目是空数组。

1 个答案:

答案 0 :(得分:1)

我个人使用Ruby(仍然需要加强一些SQL):

channels = Channel.includes(:shows).order('channels.position')

channels.each { |c| c.shows.keep_if(&:approved?) }