Rails одиночная таблица наследование / подкласс найти условие в родительском - PullRequest
3 голосов
/ 29 марта 2010

У меня есть таблица с именем Users (class User < ActiveRecord::Base) и ее подкласс / STI для клиентов (class Client < User).

Клиентская «фильтрация» работает должным образом, другими словами Client.find (: all) работает для поиска всех клиентов.

Однако для пользователей мне нужно отфильтровать результат, чтобы найти только тех пользователей, которые НЕ являются клиентами (где тип является нулевым или пустым).

Я попробовал следующее в своем контроллере индекса, но независимо от того, что я указал для типа, он возвращает всех пользователей независимо от типа.

User.find(:all, :conditions => { :type => nil }, :order => 'name')

Есть какие-нибудь подсказки о том, как заставить это условие работать?

Спасибо!

Ответы [ 2 ]

1 голос
/ 29 марта 2010

Я не знаю, как заполнен атрибут «тип». Но если тип является столбцом базы данных, вы сможете отфильтровать его по соответствующему выражению SQL:

User.find(:all, :conditions => [ " type=null or type='' "])

Или вы имеете в виду функцию "класс"? "тип" устарел, насколько я знаю. IRB сообщает: предупреждение: тип объекта устарел; используйте Object # class

0 голосов
/ 29 марта 2010

Хорошо, разобрался!

Приложение использует библиотеку для методов контроллера по умолчанию (аналогично resource_controller), и я неправильно переписывал метод index в пользовательском контроллере.

Спасибо за помощь Ахим !!

...