2012-02-09 1 views
0

사용자 모델을 만들었습니다. #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에게 감사드립니다.