2016-03-08 50 views
3

我對用戶的ActiveAdmin濾鏡菜單,有一羣人,像這樣列出:ActiveAdmin過濾器 - 找到所有有空白字段

filter :id 
filter :full_name 
filter :age 
filter :supervisor, collection: Supervisors.all 

我想查詢誰是主管字段設置爲所有用戶零。我怎樣才能做到這一點?

+0

爲什麼濾波器':SUPERVIS如果你想查詢沒有主管的用戶(假設你的主管字段是'supervisor_id') – nayiaw

+1

我希望用戶能夠選擇特定主管,任何主管或不主管。 – GMchris

回答

0

filter本身不允許您搜索的空白,我認爲你必須要解決通過添加ransacker到您的用戶模式:

ransacker :by_supervisor, formatter: proc{ |v| 
    v=nil if v==0 
    data = User.where(supervisor: v).ids 
    data = data.present? ? data : nil 
} do |parent| 
    parent.table[:id] 
end 

和ActiveAdmin模塊而不是正常的過濾器

filter :supervisor, collection: [Supervisor.new(id: 0, name: 'None'), Supervisor.all].flatten 

這提供了具有ID的主管= 0,以允許搜索 「不監督員」,ID = 0由ransacker變成零

相關問題