如何在活动管理员中将值返回为已检查的check_box?[红宝石]

Mei*_*tra 1 ruby gem ruby-on-rails

我目前正在努力解决如何在编辑表单上的ruby上的active_admin gem中将数组值作为复选框返回的问题.

它成功编辑了值并更新了当前使用has且属于表关系的数组.但每次返回页面时,复选框都返回没有复选框.

这是代码.

f.input   :additional_toppings, collection: AdditionalTopping.all.map{|t| [t.name, t.id]}, 
as: :check_boxes, filter: food.additional_toppings   
Run Code Online (Sandbox Code Playgroud)

我确实试过用 :checked但没有成功.

而且我想知道它是否可能让活动管理员显示只读值,有些人说要使用,:disabled => true但它对我不起作用.

Mei*_*tra 5

好的,我找到了答案,而且特别简单.(终于好几天了)

我要做的只是删除集合,并将过滤器更改为已选中.我也改变了additional_toppings进入additional_topping_ids返回数组,我还加了accessible属性.

以下是代码:

f.input :additional_toppings, as: :check_boxes, checked: food.additional_topping_ids
Run Code Online (Sandbox Code Playgroud)
attr_accessible :name, :price, :quantity, :picture, :category_id, :info , :favourite, :weekly, :unlimited, :toppings, :tag_list, :additional_topping_ids

has_many :categorizations
has_many :additional_toppings, :through => :categorizations
Run Code Online (Sandbox Code Playgroud)