Ruby on Rails .where与数组
示例
where任何ActiveRecord模型上的方法都可以用于生成形式为SQL的SQLWHEREcolumn_nameIN(a,b,c,...)。这可以通过将数组作为参数来实现。
作为一个简单的示例,我们将使用以下模型:
class Person < ActiveRecord::Base #属性:first_name,:string #属性:last_name,:string end people = Person.where(first_name: ['Mark', 'Mary']) people.to_sql # "SELECT * FROM people WHERE first_name IN ('Mark', 'Mary')"
如果数组包含anil,则将修改SQL以检查该列是否为null:
people = Person.where(first_name: ['Mark', 'Mary', nil]) people.to_sql # "SELECT * FROM people WHERE first_name IN ('Mark', 'Mary') OR first_name IS NULL"