3

我有一个名为 Users ( class User < ActiveRecord::Base) 的表和一个用于 Clients ( class Client < User) 的子类/STI。

客户端“过滤”按预期工作,换句话说,Client.find(:all) 可以查找所有客户端。

但是,对于用户,我需要过滤结果以仅查找不是客户端的用户(其中​​类型为空或空白)。

我在我的索引控制器中尝试了以下内容,但无论我为类型添加什么,它都会返回所有用户,无论类型如何。

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

关于如何让这种情况发挥作用的任何线索?

谢谢!

4

2 回答 2

1

我不知道属性“类型”是如何填充的。但是,如果 type 是数据库列,您将能够通过适当的 SQL 表达式对其进行过滤:

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

还是您的意思是“类”功能?据我所知,“类型”已被弃用。IRB 状态:警告:不推荐使用 Object#type;使用对象#class

于 2010-03-29T14:21:55.987 回答
0

好的,想通了!

该应用程序使用默认控制器方法的库(类似于 resource_controller),我错误地覆盖了用户控制器中的索引方法。

感谢阿奇姆的帮助!!

于 2010-03-29T17:10:43.803 回答