我正在寻找是否有更好的方法来编写以下ActiveRecord查询。
@posts = Post.select {|x| x.section.nil?}
我对此查询的操作是搜索帖子,只选择不再有相关部分并且孤立的帖子。
有更好的方法吗?我使用的是rails 3.2。
非常感谢。
答案 0 :(得分:2)
这应该有效:
Post.joins('left outer join sections on sections.id = posts.section_id').where('sections.id is null and posts.section_id is not null')
或以较短的方式,使用eager_load
:
Post.eager_load(:section).where('sections.id is null and posts.section_id is not null')