更改hidden_​​field_tag名称

时间:2017-01-05 09:01:38

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-3.2

_form.html.erb

<% @subjectmodulelists.each_with_index do |modules,index| %>
     <%= hidden_field_tag 'subjectModuleId'+index.to_s, modules.subject_module_id%><%= f.submit class:"btn btn-primary" %>
<% end %>

我在部分表单实际字段名称中的上述代码是我的数据库中的subject_module_id。这里我改为'subjectModuleId'+ index.to_s来存储数据数组。

我有以下错误。

  

Mysql2 ::错误:字段'subject_module_id'没有默认值:INSERT INTO term_questions

Params传递赞:

"subjectModuleId0"=>"65",  "subjectModuleId1"=>"66", "subjectModuleId2"=>"67",

在我的控制器中

@question = TermQuestion.new
@question.subject_module_id = params[:subjectModuleId]

我如何将名称更改为subject_module_id。

感谢。

1 个答案:

答案 0 :(得分:0)

将数组值传递给隐藏字段

  <%= hidden_field_tag 'subject_module_id[]', @subjectmodulelists.map(&:subject_module_id) %>
  <%= f.submit class:"btn btn-primary" %>

这样你就会得到像

这样的参数
{ "subject_module_id"=>[65, 66, 67] }

然后你可以分配

@question.subject_module_id = params[:subject_module_id]