我试图将2个查询放在一个范围内 - 我不确定我哪里出错了。你的建议将不胜感激
scope :active_recruiters, -> {where(['status = ? OR status = ?', 'Accepted', 'IS NULL'])}
答案 0 :(得分:4)
如果要使用OR而不是AND用户AREL表约束链接
scope = where( where(status: 'Accepted').arel.constraints.reduce( :and ).or( where(status: nil).arel.constraints.reduce( :and ) ) )
答案 1 :(得分:3)
尝试scope :active_recruiters, -> { where(status: ['Accepted', nil]) }
答案 2 :(得分:1)
您尝试策划的查询将如下所示:
WHERE status = 'Accepted' OR status = 'IS NULL';
你可能正在寻找类似的东西:
WHERE status = 'Accepted' OR status is null;
在您的代码中尝试此操作
scope :active_recruiters, -> {where(['status = ? OR status ?', 'Accepted', 'IS NULL'])}
虽然更好,但是这个怎么样?
scope :active_recruiters, -> { where :status, [nil, 'Accepted'] }