这个问题与 ActiveAdmin 宝石相关。我试图过滤一个布尔类型的列,但是没有成功: filter :column_name
和 filter :column_name, :as => :boolean
都不起作用。
有什么想法吗?
谢谢!
这个问题与 ActiveAdmin 宝石相关。我试图过滤一个布尔类型的列,但是没有成功: filter :column_name
和 filter :column_name, :as => :boolean
都不起作用。
有什么想法吗?
谢谢!
filter :column_name, :as => :select
会创建一个下拉菜单,其中的选项是“任意(Any)”,“真(True)”和“假(False)”。
filter :column_name, as: :select
现在有可怕的副作用,会进行完整的表扫描。此外,它的选项现在是“Any”、“true”、“false”。enabled
的District
模型,则filter :enabled, as: :select
生成查询SELECT DISTINCT "districts"."enabled" FROM "districts" ORDER BY enabled asc
来获取3个值。我的地区表很大,所以这显然不是我想要的。filter :column_name, as: :boolean
,但它使用默认为未选中的复选框,这也不是我想要的。filter :enabled, as: :select, collection: [["Yes", true], ["No", false]]
。ActiveAdmin为我放置了“Any”值。同样地,如果你需要使用复选框,请这样做:
filter :column_name, as: :check_boxes
这将创建名为是
和否
的复选框,它们的值分别为true
和false
。
如果你想自定义名称,甚至可能包括标签?然后执行:
filter :column_name, label: "Custom Column Name", as: :check_boxes, collection: [["Paid", true], ["Not paid", false]]
虽然你可以使用复选框(它有效!),但我建议使用as::select
,因为它在页面刷新后“记住”所选择的值(在UI上)。截至activeadmin版本1.2.1,复选框尚未具备此功能。
:as => :select, collection: [['True', true], ['False', false]]
- MegaTux