通过具有相同值的不同列进行查询

时间:2015-11-02 17:38:27

标签: ruby-on-rails ruby ruby-on-rails-4

我需要在Rails 4 中进行查询,我想通过" OR"过滤到2个不同的列或字段。我怎样才能做到这一点?我只知道如何使用一个字段和不同的值进行查询。

MyModel.where(my_field: ["var1", "var2"])

但我想使用不同的列和相同的值以及" OR"。

2 个答案:

答案 0 :(得分:2)

做这样的事情怎么样:

MyModel.where("my_field=? OR my_second_field=?", 'test', 'test')

另见以下参见2.2阵列条件: http://edgeguides.rubyonrails.org/active_record_querying.html

答案 1 :(得分:0)

这对你有用:

MyModel.where(
 {some_field: "value"} | 
 {some_other_field: "value"}
)

如布莱恩的回答中所提到的,字符串插值也是完全有效的。但是,这是我首选的方法,原因有两个:

  1. 它非常易读。
  2. 如果您决定在4个字段而不是2个字段中搜索特定值,同时仍然保持可读性,则添加更多字段非常简单明了。