假设我有两对这样的SQL条件:
a = [ "users.accepted = ? AND users.active_at > ?", true, Time.zone.now ]
b = [ "users.accepted = ? AND users.active_at > ?", false, Time.zone.now + 3.days ]
我可以使用User.where(a)
之类的代码来获取满足a
条件的所有行。如何使用where
获取满足a
或b
条件的行?结果应为ActiveRecord::Relation
。
答案 0 :(得分:2)
有几种方法可以解决这个问题。
获取meta_where或squeel,具体取决于您的rails版本。这些是非常好的宝石,可以增强ActiveRecord :: Relation的Arel行为。
手动编写sql并将其作为字符串传递给where方法。您可能需要更多地手动处理sql注入,但从上面的示例中我没有看到任何用户生成的字符串的传入值。