Active Record查询根据条件检索两个值之一

时间:2015-12-25 13:55:57

标签: ruby-on-rails activerecord

我的模特: id (integer)user_id(integer)is_active(boolean)status(string)

我想形成一个活动记录查询,它返回包含is_active=falsestatus='pending' UNION的所有行,这些行具有is_active=true但其user_id不存在的行第一个条件。

我可以通过两个步骤单独获取它们并进行复杂的合并,但有没有办法让数据库执行此操作?

1 个答案:

答案 0 :(得分:0)

我不明白为什么你会使用一个联合从第一个查询中查找user_ids而不只是在where子句中否定status='pending'

Model.where("(is_active = false AND status='pending') OR (is_active=true AND NOT status='pending')")