0

当我在下面的控制器中运行代码时,我不断收到一条错误消息,说 Can't mass-assign protected attributes: 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
4

3 回答 3

2

写作

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

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

于 2013-05-20T04:23:51.177 回答
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
于 2013-05-20T01:38:43.070 回答
-1

通过协会建立它

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

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

于 2013-05-20T01:38:57.260 回答