ActiveRecord НЕ НУЛЯЕТ sql finder - PullRequest
       0

ActiveRecord НЕ НУЛЯЕТ sql finder

15 голосов
/ 06 августа 2011

Следующий искатель распечатывает IS NULL.

User.where(:id =>nil) #=> []
User Load (0.5ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` IS NULL ORDER BY created_at DESC

Но я не смог найти, как распечатать IS NOT NULL один?

Ответы [ 4 ]

26 голосов
/ 06 августа 2011

Попробуйте User.where("id IS NOT NULL")

Это должно сделать вашу работу

19 голосов
/ 23 декабря 2014

Самое простое идиоматическое решение ActiveRecord:

User.where.not(id: nil)
5 голосов
/ 01 октября 2014

User.where.not(id: nil) будет работать для рельсов 4.

User.where("id IS NOT NULL") будет работать для более старых версий.

1 голос
/ 23 августа 2016

Rails 4

вы можете попробовать это

User.where("id is not NULL")

Также, если вы хотите исключить конкретный идентификатор и включить значения nil, следующие будут работать

User.where("id is NULL or id != 'excluded_id'")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...