我有以下表格:
<%= 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是数组的情况?
答案 0 :(得分:0)
尝试这样的事情
params.require(:classification_code_rule).map do |rule_param|
ActionController::Parameters.new(rule_param.to_hash).permit!
end