活跃管理员:自定义 check_box 输入

Active admin: Custom check_box input

我需要显示一个动态值列表以在活动管理编辑屏幕上显示为复选框,其中列表来自代码(而非数据库)。我可以很容易地做到这一点,但我无法弄清楚如何将其中一些显示为已检查。

这是我正在尝试做的一个简化示例:

names = %w(Sam Darcy Ernie)
pairs = Hash[names.zip(names)]
f.input :buddies, as: :check_boxes, collection: pairs, checked: %w(Sam)

我希望显示 3 个复选框并选中 "Sam" 框。 None 已检查。我可以做什么来控制选中哪些复选框?

我最终得到了以下功能所需的功能:

people = [
  ['Sam', 0, checked: true],
  ['Darcy', 0],
  ['Ernie', 0],
]
f.input :buddies, as: :check_boxes, collection: people

好像前2个以外的数组项是用来设置属性的。所以在我的例子中,设置了 "checked" 属性,导致 checked="checked"

的元素属性

我仍然想知道是否有更好的方法来处理这个问题。