无法在ActiveAdmin编辑表单中使用嵌套表单批量分配错误

时间:2014-03-07 22:05:48

标签: ruby-on-rails ruby-on-rails-3 activeadmin

我正在组建一个具有许多不同关系的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

2 个答案:

答案 0 :(得分:0)

items_category_attributes来自哪里? 如果你把它改成只有items_category我认为应该修复它。

答案 1 :(得分:0)

ItemsDesign属于ItemsCategory,但您的表单将ItemsCategory作为ItemsDesign

的嵌套属性

您只能通过父级保存关联记录的属性。 Documentation