Площадь с одиночной таблицей наследство/подкласс
-
22-09-2019 - |
Вопрос
У меня есть таблица под названием «Пользователи» (class User < ActiveRecord::Base
) и подкласс/ИТ -ИТ для клиентов (class Client < User
).
Клиент «фильтрация» работает, как и ожидалось, другими словами client.find (: Все) работает, чтобы найти всех клиентов.
Однако для пользователей мне нужно отфильтровать результат, чтобы найти только пользователей, которые не являются клиентами (где тип нулевой или пустой).
Я попробовал следующее в своем индексе -контроллере, но независимо от того, что я положил для типа, он возвращает всех пользователей независимо от типа.
User.find(:all, :conditions => { :type => nil }, :order => 'name')
Любая подсказка о том, как заставить это условие работать?
Спасибо!
Решение 2
ОК, понял это!
Приложение использует LIB для методов контроллера по умолчанию (аналогично Resource_controller), и я неправильно перезаписывал метод индекса в пользовательском контроллере.
Спасибо за помощь, ахим !!
Другие советы
Я не знаю, как заполнен атрибут «тип». Но если тип - это столбец базы данных, вы сможете отфильтровать его с помощью соответствующего выражения SQL:
User.find(:all, :conditions => [ " type=null or type='' "])
Или вы имеете в виду функцию «класс»? «Тип» устарел, насколько я знаю. Государства IRB: Предупреждение: тип объекта#устарел; Используйте объект#класс