Post 模型参数的值列表
Post List of Values to model params
我正在创建讲师页面,其中包含多个要传递到模型参数列表的课程 ID。
以下是我的白名单参数代码
def instructor_params
params.require(:instructor).permit(:LastName, :FirstMidName, :HireDate, {:courses_ids => []})
end
我的创建页面如下
<%= form_for @instructor, :html => { :class => "form-horizontal instructor" } do |f| %>
<% if @instructor.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@instructor.errors.count, "error") %> prohibited this instructor from being saved:</h2>
<ul>
<% @instructor.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="form-group">
<%= f.label :LastName, :class => 'control-label col-md-2' %>
<div class="col-md-10">
<%= f.text_field :LastName, :class => 'form-control' %>
<%= error_span(@instructor[:LastName]) %>
</div>
</div>
<div class="form-group">
<%= f.label :FirstMidName, :class => 'control-label col-md-2' %>
<div class="col-md-10">
<%= f.text_field :FirstMidName, :class => 'form-control' %>
<%= error_span(@instructor[:FirstMidName]) %>
</div>
</div>
<div class="form-group">
<%= f.label :HireDate, :class => 'control-label col-md-2' %>
<div class="col-md-10">
<%= f.text_field :HireDate, :class => 'form-control' %>
<%= error_span(@instructor[:HireDate]) %>
</div>
</div>
<div class="form-group">
<%= f.label text="Courses", :class => 'control-label col-md-2' %>
<div class="col-md-10">
<table cellpadding="5">
<tr>
<td>
<input type="checkbox" name="course_ids" value="Course1">Course1
<input type="checkbox" name="course_ids" value="Course2">Course2
<input type="checkbox" name="course_ids" value="Course3">Course3
</td>
</tr>
</table>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<%= f.submit nil, :class => 'btn btn-primary' %>
<%= link_to t('.cancel', :default => t("helpers.links.cancel")),
instructors_path, :class => 'btn btn-default' %>
</div>
</div>
<% end %>
但是如果 select 多个复选框参数不作为数组传递。 ?只拍了最后一张,不允许显示。请指导我。我在 Instructor 模型中没有任何名为 course_ids 的属性。
要接收一组值,您需要将复选框的名称更改为 course_ids[]
在您允许的参数中,{:courses_ids => []}
可以简单地写成 course_ids: []
(还要注意复数形式 'courses' 的拼写错误)。
我正在创建讲师页面,其中包含多个要传递到模型参数列表的课程 ID。
以下是我的白名单参数代码
def instructor_params
params.require(:instructor).permit(:LastName, :FirstMidName, :HireDate, {:courses_ids => []})
end
我的创建页面如下
<%= form_for @instructor, :html => { :class => "form-horizontal instructor" } do |f| %>
<% if @instructor.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@instructor.errors.count, "error") %> prohibited this instructor from being saved:</h2>
<ul>
<% @instructor.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="form-group">
<%= f.label :LastName, :class => 'control-label col-md-2' %>
<div class="col-md-10">
<%= f.text_field :LastName, :class => 'form-control' %>
<%= error_span(@instructor[:LastName]) %>
</div>
</div>
<div class="form-group">
<%= f.label :FirstMidName, :class => 'control-label col-md-2' %>
<div class="col-md-10">
<%= f.text_field :FirstMidName, :class => 'form-control' %>
<%= error_span(@instructor[:FirstMidName]) %>
</div>
</div>
<div class="form-group">
<%= f.label :HireDate, :class => 'control-label col-md-2' %>
<div class="col-md-10">
<%= f.text_field :HireDate, :class => 'form-control' %>
<%= error_span(@instructor[:HireDate]) %>
</div>
</div>
<div class="form-group">
<%= f.label text="Courses", :class => 'control-label col-md-2' %>
<div class="col-md-10">
<table cellpadding="5">
<tr>
<td>
<input type="checkbox" name="course_ids" value="Course1">Course1
<input type="checkbox" name="course_ids" value="Course2">Course2
<input type="checkbox" name="course_ids" value="Course3">Course3
</td>
</tr>
</table>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<%= f.submit nil, :class => 'btn btn-primary' %>
<%= link_to t('.cancel', :default => t("helpers.links.cancel")),
instructors_path, :class => 'btn btn-default' %>
</div>
</div>
<% end %>
但是如果 select 多个复选框参数不作为数组传递。 ?只拍了最后一张,不允许显示。请指导我。我在 Instructor 模型中没有任何名为 course_ids 的属性。
要接收一组值,您需要将复选框的名称更改为 course_ids[]
在您允许的参数中,{:courses_ids => []}
可以简单地写成 course_ids: []
(还要注意复数形式 'courses' 的拼写错误)。