2012-02-09 11 views
0

私はUserモデルを作成しました。 #INDEXでActiveAdminでは、コレクションがフィルタに読み込まれません。

は、私が利用可能な値を選択することで、これらのフィールド(位置、会社、町を)フィルタリングすることができるようにしたいが、それは私が新しいユーザーを追加する場合でもUser.allは常に同じレコードセットを取得ようだ:

filter :id 
filter :gender, :as => :select, :collection => Interlocutor::GENDERS 
filter :last_name 
filter :first_name 
filter :email 
filter :phone 
filter :position, :as => :select, :collection => User.all.map(&:position) 
filter :company, :as => :select, :collection => User.all.map(&:company) 
filter :zipcode 
filter :town, :as => :select, :collection => User.all.map(&:town) 
filter :created_at 
filter :updated_at 

サーバーを再起動して機能させる必要があります。

アイデア?

答えて

0

解決策は、デフォルトの動作を上書きすることです。コントローラ内:

before_filter :use_dynamic_filter, :only => :index 

def use_dynamic_filter 
    self.class.reset_filters! 
    self.class.filter :your_filter_defs_here, :as => :select, :collection => User.all 
end 

Drew Ulmerに感謝します。

関連する問題