如何在ActiveAdmin上过滤布尔列?

Amo*_*tir 13 ruby-on-rails-3 activeadmin

此问题与ActiveAdmin gem有关.我正在尝试过滤具有布尔类型但没有成功的列:filter :column_name并且filter :column_name, :as => :boolean不起作用.

任何的想法?

谢谢!

lbz*_*lbz 20

filter :column_name, :as => :select 将创建一个下拉值,其值为"Any","True","False"


aec*_*aec 8

从ActiveAdmin 0.6.2开始,使用filter :column_name, as: :select现在具有完成表扫描的可怕副作用.此外,它的选项现在是"任何","真实","虚假".

例如,如果我有一个District带有布尔列的模型,enabledfilter :enabled, as: :select生成查询SELECT DISTINCT "districts"."enabled" FROM "districts" ORDER BY enabled asc以获取3个值.我的区域表非常大,所以这显然不是我想要的.

OTOH,虽然我现在可以使用filter :column_name, as: :boolean,它使用一个默认不被选中的复选框,这也不是我想要的.

要恢复0.6.2之前的行为,我必须这样做:filter :enabled, as: :select, collection: [["Yes", true], ["No", false]].ActiveAdmin为我输入"Any"值.