Rails Form Helper意外的params哈希

时间:2016-01-26 03:55:40

标签: ruby-on-rails

Slot有很多学生 我的表格:

::-webkit-scrollbar-thumb

插槽控制器得到这个参数哈希:

<%= form_for(@slot) do |f| %>

  <% @slot.students.each do |student| %>
    <%= f.fields_for student, index: student.id do |student_form| %>
      ID: <%= student.id %>
      Present: <%= student_form.check_box :present %><br>
    <% end %>
  <% end %>

  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

因为我需要学生的身份证,但我不知道如何通过每个学生获得它。这种方式对我来说更容易:

"slot"=>{
 "student"=>{"1"=>{"present"=>"0"},
 "2"=>{"present"=>"0"},
 "3"=>{"present"=>"0"},
 "4"=>{"present"=>"0"},
 "5"=>{"present"=>"0"},
 "commit"=>"Update Slot",
 "id"=>"125251"}

我该怎么编辑表格?非常感谢你。

1 个答案:

答案 0 :(得分:1)

您需要阅读fields_for collections

ORDER BY impression

上述情况应该有效。

查看 的工作方式是在params哈希中查找#app/views/slots/edit.html.erb <%= form_for @slot do |f| %> <%= f.fields_for :students, @slot.students do |student_form| %> ID: <%= student.id %> Present: <%= student_form.check_box :present %><br> <% end %> <%= f.submit %> <% end %> 。如果你的参数没有附加students_attributes,那就不起作用了:

_attributes

"slot"=>{ "students_attributes"=> { "1"=>{"present"=>"0"}, "2"=>{"present"=>"0"}, "3"=>{"present"=>"0"}, "4"=>{"present"=>"0"}, "5"=>{"present"=>"0"}, } "commit"=>"Update Slot", "id"=>"125251"} 应该如何运作。不构建关联对象或不存在这些对象将阻止fields_for参数传递,从而阻止accepts_nested_attributes_for根据需要更新字段。

-

您无需明确定义_attributesids / fields_for应该为您执行此操作:

accepts_nested_attributes_for