如何在Rails控制器中进行正确的外连接?

时间:2010-05-07 13:43:07

标签: ruby-on-rails

在Rails控制器中,我正在设置一个这样的变量:

@users = User.find(:all, :joins => family)

这给了我所有拥有家庭的用户。我想要的恰恰相反:所有的用户都有家庭。

我尝试添加:

:conditions=> {:family => nil}

......但是收到了错误。

正确的外部联接的正确方法是什么?

3 个答案:

答案 0 :(得分:1)

如果family是一个相关对象,你需要检查条件子句中family_id是否为空。

:conditions => "family_id IS NULL"

答案 1 :(得分:0)

不可否认,我的Ruby很差,但我相信当遇到类似的问题时,我可以使用以下内容过滤掉NULL

:conditions => "family IS NULL"

答案 2 :(得分:0)

如果您想要执行除默认内部联接之外的其他操作,则需要将一个字符串作为:joins参数传递给您要执行的联接的sql片段。