Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在erb-rails中保存复选框值_Ruby On Rails_Ruby_Forms_Checkbox_Nested - Fatal编程技术网

Ruby on rails 在erb-rails中保存复选框值

Ruby on rails 在erb-rails中保存复选框值,ruby-on-rails,ruby,forms,checkbox,nested,Ruby On Rails,Ruby,Forms,Checkbox,Nested,我有一个嵌套表单,它将信息保存到三个不同的模型中。表单的一个部分使用复选框,应该保存值1-5。但是,即使选中这些框,表单也会返回值0。我尝试了几种不同的代码变体来设置检查值。任何帮助都将不胜感激。表格代码的一部分如下所示: <%= form_for @newinstructor do |f|%> <%= f.text_field :first_name %> <%= f.text_field :last_name %> <%= f.fiel

我有一个嵌套表单,它将信息保存到三个不同的模型中。表单的一个部分使用复选框,应该保存值1-5。但是,即使选中这些框,表单也会返回值0。我尝试了几种不同的代码变体来设置检查值。任何帮助都将不胜感激。表格代码的一部分如下所示:

<%= form_for @newinstructor do |f|%>

  <%= f.text_field :first_name %>
  <%= f.text_field :last_name %>
  <%= f.fields_for :through_ats do |tag_field| %>
    <%= label_tag("What categories does your activity fit into?") %><br>
    <%= label_tag(:tag, "Cooking") %>
    <%= tag_field.check_box(:tag_id, :value => 1) %>
    <%= label_tag(:tag, "Art") %>
    <%= tag_field.check_box(:tag_id, :value => 2) %>
    <%= label_tag(:tag, "Music") %>
    <%= tag_field.check_box(:tag_id, :value => 3) %>
    <%= label_tag(:tag, "Outdoors") %>
    <%= tag_field.check_box(:tag_id, :value => 4) %>
    <%= label_tag(:tag, "Food") %>
    <%= tag_field.check_box(:tag_id, :value => 5) %>
  <% end %>

<%= f.submit %>

<% end %>


1) %> 2) %> 3) %> 4) %> 5) %>
您是否允许参数中的
标记id

params.require(:instructor).permit(:name,
   through_ats_attributes: [:id, :tag_id, :_destroy]
)

为了解决这个问题,我必须在tag_field.checkbox中唯一地定义每个符号,然后在params中单独要求/允许它们

因此,在我提出的形式中:

<%= label_tag("Please check off the categories your activity fits into.") %><br>
    <%= label_tag(:tag, "Cooking") %>
    <%= tag_field.check_box(:cooking) %>
    <%= label_tag(:tag, "Art") %>
    <%= tag_field.check_box(:art) %>
而不是:

params.require(:instructor).permit(through_ats: [:id, :tag_id])

我应该在哪个文件中允许在params中使用tag_id?我只是尝试将它添加到控制器中的方法中,但没有成功。在``instructors\u controller.rb``或类似的东西中,因为我不知道您的模型名称。
params.require(:instructor).permit(through_ats: [:cooking, :art, :music, :outdoors, :food])
params.require(:instructor).permit(through_ats: [:id, :tag_id])