具有多模型形式的强参数

时间:2015-02-28 00:21:30

标签: ruby-on-rails

我有以下表格:

<%= form_tag classification_code_rules_path do %>
  <% @classification_code_rules.each do |rule| %>
    <%= fields_for "classification_code_rule[]", rule do |pf| %>
      <%= pf.text_field :name %>
     <% end %>
  <% end %>
  <%= submit_tag %>
<% end %>

它将我想要的内容发送到服务器:

Parameters: { ... "classification_code_rule"=>[{"name"=>"dasdsaf"}, {"name"=>"sfsdgdfhgf"}, {"name"=>"hfghfgjhgjhg"}], "commit"=>"Save changes"}

由于classification_code_rule是一个数组,我按如下方式处理参数:

  def classification_code_rule_params
    params[:classification_code_rule].each do |rule_param|
      rule_param.permit!
    end
  end

但是我收到以下错误:

When assigning attributes, you must pass a hash as an argument.

如何处理强param是数组的情况?

1 个答案:

答案 0 :(得分:0)

尝试这样的事情

params.require(:classification_code_rule).map do |rule_param| 
  ActionController::Parameters.new(rule_param.to_hash).permit!
end