Rails 3:如何查找字段可能等于nil的记录?
我想找到maiden_name
等于SongWriter
的所有my_maiden_name
?
注意: my_maiden_name
可能nil
我试过了:
SongWriter.where("maiden_name = ?", my_maiden_name)
除了my_maiden_name = nil
的情况外,它工作正常。
当my_maiden_name = nil
,生成的查询为:
SELECT `song_writers`.* FROM `song_writers` WHERE (maiden_name = NULL)
而不是:
SELECT `song_writers`.* FROM `song_writers` WHERE maiden_name IS NULL
如何概括活动记录查询以包含案例my_maiden_name = nil
?
使用哈希语法。 ActiveRecord将为您进行转换。
SongWriter.where(:maiden_name => my_maiden_name)
当my_maiden_name
为nil
,它将使用IS NULL
。 否则它将使用=
。