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_namenil ,它将使用IS NULL 。 否则它将使用=