给定以下场景,使用activerecord:
用户属于事件
我想找到所有没有名为“party”的事件的用户。
所以我尝试了以下几点:
User.all(:joins => :event, :conditions => ["events.name != ?", "party"])
但是,这只会返回那些有事件的用户,而不会返回“party”事件。它不会返回所有根本没有事件的用户,因为:joins会自动将结果限制为仅关联记录。
我可以执行两个查询并将结果添加到一起,但是有没有一种方法,在一个查询中获取非关联记录以及与条件匹配的关联记录?
最佳答案
这个怎么样?
User.all(
:include => :event,
:conditions => ["users.event_id IS NULL OR events.name != ?", "party"])