如何使用`field in`以rails方式写这个?

时间:2012-01-17 02:46:06

标签: ruby-on-rails

我了解到使用field in (a1,a2,a3)比使用=运算符要快。

SELECT *
FROM user
WHERE Greeting IN ('hello', 'hi', 'hey')

如何以rails方式编写上述查询?

1 个答案:

答案 0 :(得分:3)

你会做这样的事情:

users = User.where('greeting in (?)', %w{hello hi hey})

Rails将知道如何处理数组%w{hello hi hey},作为占位符的值。或者,如果您已经有一个字符串数组:

h_words = [ 'hello', 'hi', 'hey' ]
users   = User.where('greeting in (?)', h_words)
# or even this
users   = User.where('greeting in (:words)', :words => h_words)

或者,可能是最Railsy的方式,如下:

users = User.where(:greeting => %w{hello hi hey})