我一直收到一条错误消息说无法在下面的控制器中运行代码时无法批量分配受保护的属性: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
答案 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