Получение ActiveRecords, если не ноль - PullRequest
3 голосов
/ 02 июня 2010

Я хотел бы иметь возможность собрать все записи в таблице, где user_id не является нулевым. Это то, что у меня есть, но, похоже, оно не работает (хотя оно работало в отдельном проекте):

named_scope :all_registered, :conditions => ["user_id != ?", nil]

Ответы [ 3 ]

8 голосов
/ 02 июня 2010

SQL имеет специальный оператор для проверки на NULL: IS NULL и IS NOT NULL

named_scope :all_registered, :conditions => ["user_id IS NOT NULL"]
1 голос
/ 02 июня 2010

Это должно работать:

named_scope :all_registered, :conditions => "user_id IS NOT NULL"
0 голосов
/ 20 мая 2014

В Rails 4 вы можете использовать НЕ условия , см. Интерфейс запросов Active Record

например:

User.where.not(id: nil)

или как область действия:

scope :all_registered, -> { where.not(user_id: nil) }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...