数组属性的表单选择

时间:2019-03-13 07:26:21

标签: ruby-on-rails

我有一个模型Usergroup,它有2个属性,它们是数组:

Usergroup.create(name: "Group 1", account_id: 7, hix_modules: ['cs-seh','cs-ddr'], users: [61,83,77])

现在,我想创建一个表单来创建用户组。对数组属性执行此操作的最佳方法是什么?我正在考虑将选择与最后结合使用Cocoon或Stimulus一起添加可变数量的usershix_modules。但是,从一个固定的选择开始就很简单:将有效数组发送给控制器的样子如何?

2 个答案:

答案 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"]}