Rails 3: Как найти записи с полем, равным нулю? - PullRequest
1 голос
/ 21 сентября 2011

Я хотел бы найти все SongWriter с maiden_name равно 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?

1 Ответ

5 голосов
/ 21 сентября 2011

Используйте синтаксис Hash.ActiveRecord выполнит преобразование за вас.

SongWriter.where(:maiden_name => my_maiden_name)

Когда my_maiden_name равно nil, будет использоваться IS NULL.В противном случае он будет использовать =.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...