如何以 Rails 形式提交整数数组?

How to submit an array of integers in a Rails form?

我想知道是否有办法在 Rails 表单中添加某种输入字段,这样如果用户输入 1, 2, 3,那么 params[:model][:attribute] returns [1, 2, 3] 或至少 ['1', '2', '3'],但不是 ['1, 2, 3'].

背景:

我有一个模型 Foo,它有一个属性 bar_ids。该属性在 PostgresQL 数据库中的数据类型为 Array。我尝试了几种方法:

那么,我的问题又来了——有没有办法以这种方式构建我的表单,以便 Rails 自动将输入解析为相应的数据类型,在我的例子中是一个整数数组?

人们通常在更新模型之前手动编辑 params

 params[:model][:attribute] = params[:model:][:attribute].split(',')
 # ...
 Model.update_attributes(params[:model])

通常在controller action或者before_action中完成。