3

ユーザー ( class User < ActiveRecord::Base) と呼ばれるテーブルと、クライアント ( class Client < User) 用のそのサブクラス/STI があります。

クライアントの「フィルタリング」は期待どおりに機能します。つまり、Client.find(:all) はすべてのクライアントを検索するように機能します。

ただし、ユーザーの場合は、結果をフィルタリングして、クライアントではないユーザー (タイプが null または空白) のみを検索する必要があります。

インデックスコントローラーで次のことを試しましたが、タイプに何を入れても、タイプに関係なくすべてのユーザーが返されます。

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

この状態を機能させる方法の手がかりはありますか?

ありがとう!

4

2 に答える 2

1

属性「タイプ」がどのように入力されているかわかりません。ただし、型がデータベース列の場合は、適切な SQL 式でフィルター処理できます。

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

それとも関数「クラス」のことですか?私の知る限り、「タイプ」は非推奨です。IRB の状態: 警告: Object#type は非推奨です。オブジェクト#クラスを使用

于 2010-03-29T14:21:55.987 に答える
0

わかりました!

アプリはデフォルトのコントローラー メソッド (resource_controller と同様) に lib を使用し、ユーザー コントローラーのインデックス メソッドを誤って上書きしていました。

助けてくれてありがとうアキム!!

于 2010-03-29T17:10:43.803 に答える