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

时间:2015-04-17 11:04:08

标签: ruby-on-rails arrays forms postgresql params

我想知道是否有办法在Rails表单中包含某种输入字段,因此如果用户输入1, 2, 3,则params[:model][:attribute]会返回[1, 2, 3]或至少['1', '2', '3'],但不是['1, 2, 3']

背景:

我有一个模型Foo,它有一个属性bar_ids。 PostgresQL数据库中此属性的数据类型为Array。我尝试了几件事:

  • 如果f.text_field :bar_ids,则params[:foo][:bar_ids]返回'1, 2, 3'
  • 如果f.text_field_tag 'foo[bar_ids][]',则params[:foo][:bar_ids]返回['1, 2, 3']
  • 如果f.number_field :bar_ids,则params[:foo][:bar_ids]如果仅输入'1'并且表单不允许输入多个数字,则1会返回{{1}}

所以,再次提出我的问题 - 有没有办法以这种方式构造我的表单,以便Rails自动将输入解析为相应的数据类型,在我的例子中是一个整数数组?

1 个答案:

答案 0 :(得分:2)

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

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

通常在控制器操作或before_action中完成。