我有一个模型Usergroup
,它有2个属性,它们是数组:
Usergroup.create(name: "Group 1", account_id: 7, hix_modules: ['cs-seh','cs-ddr'], users: [61,83,77])
现在,我想创建一个表单来创建用户组。对数组属性执行此操作的最佳方法是什么?我正在考虑将选择与最后结合使用Cocoon或Stimulus一起添加可变数量的users
或hix_modules
。但是,从一个固定的选择开始就很简单:将有效数组发送给控制器的样子如何?
答案 0 :(得分:1)
编辑模型以使字段序列化为数组
class Usergroup < ActiveRecord::Base
serialize :hix_modules,Array
serialize :users,Array
end
在控制台中对其进行测试
a = Usergroup.new
=> #<Usergroup id: nil, hix_modules: [], users: [], name: nil, account_id: nil, created_at: nil, updated_at: nil>
a.hix_modules
=> []
a.hix_modules << "cs-seh"
=> ["cs-seh"]
答案 1 :(得分:0)
我通过多选将其解决:
= f.select :hix_modules, options_for_select(@hix_modules), { prompt: "Select module" }, { multiple: true, size: 10}
这将发送以下参数值:
Parameters: {"usergroup"=>{"account_id"=>"7", "name"=>"Test", "hix_modules"=>["", "CS-Agenda", "CS-DDR"], "users"=>["", "65", "77", "46"]}