Rails 3中是否有AR#or_where
和
User.where(cond1).or_where(cond2)
答案 0 :(得分:4)
在Rails中没有类似的方法。
我认为在WHERE子句中执行OR的最简单方法是执行以下操作:
User.where("first_name = ? OR last_name = ?", params[:first_name], "Wilson")
如果你想学习Arel方法(有一个“或”方法),请看这里:https://github.com/rails/arel#readme。使用Arel和ActiveRecord,你可以做同样的事情:
User.where(User.arel_table[:first_name].eq(params[:first_name]).or(User.arel_table[:last_name].eq('Wilson')))
答案 1 :(得分:2)
您可以查看meta_where。这个gem允许在Ruby代码中使用更强大的ActiveRecord查询表达式,而不需要删除到SQL片段。
答案 2 :(得分:2)
只需使用User.where(cond1) | User.where(cond2)
,即||由红宝石保留!
答案 3 :(得分:0)
如果你想把它们链接起来,你必须深入研究一下这些问题。请参阅this similar SO question。