如何解决质量分配受保护的属性问题?

时间:2013-05-20 01:33:35

标签: ruby-on-rails

我一直收到一条错误消息说无法在下面的控制器中运行代码时无法批量分配受保护的属性:product_id。 我已经确认@product确实存在。关于如何解决这个问题的任何建议?

控制器:

@product = Product.find(1)
a = Category.new(:category => 'Glasses', :product_id => @product.id)
a.save

class Product < ActiveRecord::Base
  attr_accessible :blog
  has_many :categories
end

class Category < ActiveRecord::Base
    attr_accessible :category
    belongs_to :product
end

3 个答案:

答案 0 :(得分:2)

书写

@product = Product.find(1)
@product.categories.create(:category => 'Glasses')

更优雅,可以解决您的问题。

答案 1 :(得分:0)

尝试:

class Category < ActiveRecord::Base
    attr_accessible :category, :product
    belongs_to :product
end

然后:

@product = Product.find(1)
a = Category.new(:category => 'Glasses', :product => @product)
a.save

答案 2 :(得分:-1)

通过协会构建它

@product = Product.find(1)
a = @product.categories.new(:category => 'Glasses')
a.save

由于您的类别模型中没有attr_accessible :category, :product