Activerecord:使用单个查询查找非关联的加关联记录

时间:2009-03-29 02:48:29

标签: ruby-on-rails ruby activerecord

鉴于以下情况,使用activerecord:

用户belongs_to事件

我想找到所有没有名为“party”的活动的用户。

所以我尝试了以下内容:

User.all(:joins => :event, :conditions => ["events.name != ?", "party"])

但是,这只会返回有活动的用户,但不会返回“派对”活动。它不会返回所有完全没有事件的用户,因为:连接会自动将结果限制为仅关联的记录。

我可以做两个查询并将结果一起添加,但有一种方法,在一个查询中获取非关联记录,以及匹配条件的相关记录吗?

1 个答案:

答案 0 :(得分:3)

这个怎么样?

User.all(
  :include => :event, 
  :conditions => ["users.event_id IS NULL OR events.name != ?", "party"])