Ruby on rails 4 ActionController::当我使用具有多态关联的嵌套_属性时,在StaplesController中创建未经许可的参数
我绝望了。。。我尝试了所有可能的相关来源的建议,但没有任何帮助。我使用的是ruby 2.0.0 rails 4.1.8和嵌套形式的gem 它仍然会产生相同的错误: ActionController::在StaplesControllercreate中取消允许的参数 找到不允许的参数:cqnames 我有一本订书机: 以下是更新现有装订时产生的错误屏幕的内容: ActionController::在StaplesController更新中取消允许的参数 找到不允许的参数:cqnames 第68行周围的提取源:Ruby on rails 4 ActionController::当我使用具有多态关联的嵌套_属性时,在StaplesController中创建未经许可的参数,ruby-on-rails-4,nested-forms,nested-attributes,polymorphic-associations,Ruby On Rails 4,Nested Forms,Nested Attributes,Polymorphic Associations,我绝望了。。。我尝试了所有可能的相关来源的建议,但没有任何帮助。我使用的是ruby 2.0.0 rails 4.1.8和嵌套形式的gem 它仍然会产生相同的错误: ActionController::在StaplesControllercreate中取消允许的参数 找到不允许的参数:cqnames 我有一本订书机: 以下是更新现有装订时产生的错误屏幕的内容: ActionController::在StaplesController更新中取消允许的参数 找到不允许的参数:cqnames 第68行周
66 |
67 | def staple_params
68 | params.require(:staple).permit(:name, :description, allergen_ids: [], cqnames_attributes: [:id, :name, :language, :description, :_destroy] )
69 | end
70 | end
app/controllers/staples_controller.rb:68:in'staples_params'
app/controllers/staples\u controller.rb:40:在“更新”中
请求
参数:
{"utf8"=>"✓",
"_method"=>"patch",
"authenticity_token"=>"MdufJeUWmoNdJaEeP/ReIxOY+TLthJ9yIUD9aI15Htg=",
"staple"=>{"name"=>"Syr",
"description"=>"Nejaká tá mliečna dobrôtka.",
"allergen_ids"=>["1",
"2",
"3",
""],
"cqnames_attributes"=>{"1428061910570"=>{"cqnames"=>{"name"=>"aaa",
"language"=>"bbb",
"description"=>"ccc",
"_destroy"=>""}}}},
"commit"=>"Update Staple",
"locale"=>"en",
"id"=>"2"}
这里是模型装订的_form.html.erb:
使用cqname_fields.html.erb:
如果你知道…,请帮帮我。对不起,各位。。。它只是在_form.html.erb和_cqname_fields.html中错误地使用了简单的_fields作为方法 正确的版本是 _form.html.erb: 和cqname_fields.html 现在一切都好了-
class Cqname < ActiveRecord::Base
belongs_to :cqnable, polymorphic: true
end
private
def set_staple
@staple = Staple.find(params[:id])
end
def staple_params
params.require(:staple).permit(:name, :description, allergen_ids: [], cqnames_attributes: [:id, :name, :language, :description, :_destroy] )
end
66 |
67 | def staple_params
68 | params.require(:staple).permit(:name, :description, allergen_ids: [], cqnames_attributes: [:id, :name, :language, :description, :_destroy] )
69 | end
70 | end
{"utf8"=>"✓",
"_method"=>"patch",
"authenticity_token"=>"MdufJeUWmoNdJaEeP/ReIxOY+TLthJ9yIUD9aI15Htg=",
"staple"=>{"name"=>"Syr",
"description"=>"Nejaká tá mliečna dobrôtka.",
"allergen_ids"=>["1",
"2",
"3",
""],
"cqnames_attributes"=>{"1428061910570"=>{"cqnames"=>{"name"=>"aaa",
"language"=>"bbb",
"description"=>"ccc",
"_destroy"=>""}}}},
"commit"=>"Update Staple",
"locale"=>"en",
"id"=>"2"}
<%= simple_nested_form_for(@staple) do |f| %>
<% if @staple.errors.any? %>
<div id="error_explanation">
<h2><%= t('errors.template.header', count: @staple.errors.size, model: t('activerecord.models.staple')) %></h2>
<ul>
<% @staple.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.input :name %>
<%= f.input :description %>
<%= f.association :allergens, as: :check_boxes %>
<%= f.simple_fields_for :cqnames %>
<div data-no-turbolink><%= f.link_to_add "Add a colloquial name", :cqnames %></div>
</div>
<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>
<fieldset>
<legend><%= _("Colloquial Name") %></legend>
<%= f.simple_fields_for :cqnames do |builder| %>
<%= builder.input :name %>
<%= builder.input :language %>
<%= builder.input :description, as: :text %>
<%= builder.link_to_remove "Remove this colloquial name" %>
<% end %>
</fieldset>
<div class="form-inputs">
<%= f.input :name %>
<%= f.input :description %>
<%= f.association :allergens, as: :check_boxes %>
<%= f.simple_fields_for :cqnames do |builder| %>
<%= render 'cqname_fields', f: builder %>
<% end %>
<div data-no-turbolink><p><%= f.link_to_add "Add a colloquial name", :cqnames %></p></div>
</div>
<fieldset>
<legend><%= _("Colloquial Name") %></legend>
<%= f.input :name %>
<%= f.input :language %>
<%= f.input :description, as: :text %>
<%= f.link_to_remove "Remove this colloquial name" %>
</fieldset>