我有一个名为Users(class User < ActiveRecord::Base
)的表,以及客户端(class Client < User
)的子类/ STI。
客户端“过滤”按预期工作,换句话说,Client.find(:all)可以查找所有客户端。
但是,对于用户,我需要过滤结果以仅查找非客户端的用户(其中type为null或空白)。
我在索引控制器中尝试了以下内容,但无论我为该类型添加什么,它都会返回所有用户,无论其类型如何。
User.find(:all, :conditions => { :type => nil }, :order => 'name')
有关如何使这种情况发挥作用的任何线索?
谢谢!
答案 0 :(得分:1)
我不知道属性'type'是如何填充的。但是,如果type是数据库列,您将能够通过适当的SQL表达式对其进行过滤:
User.find(:all, :conditions => [ " type=null or type='' "])
或者你的意思是“阶级”这个功能?据我所知,“type”已被弃用。 IRB声明:警告:不推荐使用Object#type;使用Object#class
答案 1 :(得分:0)
好的,想通了!
应用程序使用lib作为默认控制器方法(类似于resource_controller),我错误地覆盖了用户控制器中的索引方法。
感谢Achim的帮助!!