我正在组建一个具有许多不同关系的ActiveAdmin项目。特别是具有类别表的产品表。当用户点击产品进行编辑时,如果需要,我还希望能够编辑其相关类别。但是,当我这样做时,我收到以下错误。
Can't mass-assign protected attributes: items_category_attributes
{"utf8"=>"✓",
"_method"=>"put",
"authenticity_token"=>"n9zPI/IASZP/UhaE5NA/I0v4bB1qfpcxhaEi64ZH2qY=",
"items_design"=>{"name"=>"EDITED",
"description"=>"dsfdsf",
"style"=>"",
"brand"=>"",
"color"=>"",
"items_category_attributes"=>{"name"=>"test 2",
"parent_id"=>"1",
"id"=>"2"}},
"commit"=>"Update Items design",
"id"=>"1846"}
items_design.rb
attr_accessible :description,
:image_name,
:item_id,
:name,
:category,
:items_category_id
belongs_to :items_category, foreign_key: :items_category_id
accepts_nested_attributes_for :items_category
item_category.rb
attr_accessible :name,
:parent_id
has_many :items_designs
has_many :subcategories, :class_name => "ItemsCategory", :foreign_key => "parent_id", :dependent => :destroy
belongs_to :parent, :class_name => "ItemsCategory"
应用程序/管理/ item_designs.rb
form do |f|
f.inputs "Details" do
f.input :name
f.input :description
f.input :style
f.input :brand
f.input :color
end
f.inputs do
f.has_many :items_category, :allow_destroy => true, :new_record => false do |cf|
cf.inputs :name
cf.inputs :parent
end
end
f.actions
end
答案 0 :(得分:0)
items_category_attributes来自哪里? 如果你把它改成只有items_category我认为应该修复它。
答案 1 :(得分:0)
ItemsDesign
属于ItemsCategory
,但您的表单将ItemsCategory
作为ItemsDesign
您只能通过父级保存关联记录的属性。 Documentation