Ruby on rails 3 如何在rails哈希查询中使用或

Ruby on rails 3 如何在rails哈希查询中使用或,ruby-on-rails-3,ruby-on-rails-4,Ruby On Rails 3,Ruby On Rails 4,在rails项目中查询时,我一直在使用以下语法 Table.where({ fld_1: "val_1", fld_2: "val_2" }) 它将生成以下sql SELECT * FROM tables WHERE fld_1 = 'val_1' AND fld_2 = 'val_2' 但是,我想使用或而不是和作为条件运算符进行查询。 Ex从fld_1='val_1'或fld_2='val_2'的表格中选择* 我可以通过这个查询获得它 Table.where(["fld_1 = ? and

在rails项目中查询时,我一直在使用以下语法

Table.where({ fld_1: "val_1", fld_2: "val_2" })
它将生成以下sql

SELECT * FROM tables WHERE fld_1 = 'val_1' AND fld_2 = 'val_2'
但是,我想使用而不是作为条件运算符进行查询。 Ex
从fld_1='val_1'或fld_2='val_2'的表格中选择*

我可以通过这个查询获得它

Table.where(["fld_1 = ? and fld_2 = ?", "val_1", "val_2"])
但是如何使用查询的哈希样式实现它。

根据:

使用散列条件只能进行相等、范围和子集检查

因此,您最好跳过散列并使用您提到的数组:

Table.where('fld_1= ? OR fld_2= ?', 'val_1', 'val_2')

幸运的是,
的条件与您要查找的类似()。当查询出来时,您可以这样编写查询:

Table.where(fld_1: 'val_1').or.where(fld_2: 'val_2')
根据:

使用散列条件只能进行相等、范围和子集检查

因此,您最好跳过散列并使用您提到的数组:

Table.where('fld_1= ? OR fld_2= ?', 'val_1', 'val_2')

幸运的是,
的条件与您要查找的类似()。当查询出来时,您可以这样编写查询:

Table.where(fld_1: 'val_1').or.where(fld_2: 'val_2')