0

_form.html.erbИзменить имя hidden_field_tag ​​

<% @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::Error: Field 'subject_module_id' doesn't have a default value: INSERT INTO term_questions

Params проходит как:

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

В мой контроллер

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

Как изменить имя в subject_module_id.

Спасибо.

+0

Используйте ' 'subject_module_id [] 'который принимает массив значений –

ответ

0

Pass значение массива в скрытом поле

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

Таким образом, вы получите Params как

{ "subject_module_id"=>[65, 66, 67] } 

Что то вы можете назначить

@question.subject_module_id = params[:subject_module_id] 
+0

" subject_module_id "=> [" 65 66 67 "," 65 66 67 "," 65 66 67 "] его возврат как t его. @Deepak Mahakale – Narayanan

+0

Может быть, потому, что вы все еще зацикливаетесь на '@ subjectmodulelists' –