ActiveRecord OR查询

ActiveRecord OR查询

你如何在Rails 3 ActiveRecord中进行OR查询。我找到的所有示例都只有AND查询。

编辑:自Rails 5以来可以使用OR方法。请参阅ActiveRecord :: QueryMethods


慕无忌1623718
浏览 571回答 3
3回答

繁花如伊

使用ARelt = Post.arel_tableresults = Post.where(  t[:author].eq("Someone").  or(t[:title].matches("%something%")))结果SQL:ree-1.8.7-2010.02 > puts Post.where(t[:author].eq("Someone").or(t[:title].matches("%something%"))).to_sqlSELECT     "posts".* FROM       "posts"  WHERE     (("posts"."author" = 'Someone' OR "posts"."title" LIKE '%something%'))

HUWWW

如果要对一列的值使用OR运算符,可以将数组传递给.where,ActiveRecord将使用IN(value,other_value):Model.where(:column => ["value", "other_value"]输出:SELECT `table_name`.* FROM `table_name` WHERE `table_name`.`column` IN ('value', 'other_value')这应该相当于OR单个列

红颜莎娜

在Rails 3中,它应该是Model.where("column = ? or other_column = ?", value, other_value)这还包括原始sql但我不认为在ActiveRecord中有一种方法可以进行OR操作。你的问题不是一个菜鸟问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Ruby