我无法获取查询的语法:有效记录包含在哪里
我有渠道,其功能类似于博客中的“类别”。我有展示这是像帖子。一个Show有一个布尔型的“批准”,所以它是真或假。频道也有一个位置..频道有很多节目。
如何通过位置顺序获取所有通道,只显示只有通过= true的通道?
我尝试这样:Channel.includes(:shows).order('channels.position')
那让我渠道在正确的位置,虽然我已经可以做到channel.shows
,它变得分配到通道不管show.approved=true
与否的所有节目。
Channel.includes(:shows).order('channels.position')
返回所有频道和节目,无论节目是否获得批准。
Channel.includes(:shows).where(shows:{approved: true}).order('channels.position')
仅返回已批准的频道,跳过没有批准内容的频道;但是无论显示状态如何,我都需要返回通道,但显示为空阵列。
您需要使用外连接。检查此SO链接:http://stackoverflow.com/questions/1509692/rails-activerecord-joins-with-left-join-instead-of-inner-join – mcfinnigan
你的意思是这样的? 'Channel.includes(:shows).where(:shows => [])。order('channels.position')' – depa