2012-02-09 109 views
0

我创建了用户模型。在ActiveAdmin中,集合不被重新加载到过滤器中

在#INDEX我希望能够通过选择可用值过滤这些字段(职位,公司,镇),但它似乎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 

感谢德鲁Ulmer。