【问题标题】:Post List of Values to model params将值列表发布到模型参数
【发布时间】:2015-04-22 01:41:28
【问题描述】:

我正在创建讲师页面,其中有多个课程 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 %>

但是如果选择多个复选框参数不作为数组传递。 ?它只花了最后一个,不允许显示。请指导我。我在 Instructor 模型中没有任何名为 course_ids 的属性。

【问题讨论】:

    标签: ruby ruby-on-rails-4 strong-parameters


    【解决方案1】:

    要接收一组值,您需要将复选框的名称更改为course_ids[]

    在您允许的参数中,{:courses_ids =&gt; []} 可以简单地写成course_ids: [](还要注意您使用复数“课程”时的拼写错误)。

    【讨论】:

    • 感谢它的工作,但我如何在引用表中创建条目以及主表插入
    • 这是一个完全独立的问题,超出了这个问题的范围。我建议阅读 Rails 文档和 StackOverflow 中的 accepts_nested_attributes_for。
    • 好的,如果存在任何问题,我会尝试并发布另一个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多