我在做rake:seed时遇到这个错误。无法批量分配受保护的属性
我知道他们是关于此错误的其他帖子,解决方案是将attr_accessible添加到模型中,但我不知道如何在ActiveRecord::Schema.define
实际上我正在从书中学习实用书,我从那本书中得到了这段代码,
ActiveRecord::Schema.define(:version => 20120814110309) do
create_table "products", :force => true do |t|
t.string "title"
t.text "descripton"
t.string "image_url"
t.decimal "price", :precision => 8, :scale => 2
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
end
我必须在描述中添加attr_accessible,所以我该怎么做
更新:
我的products.rb已经有了attr_accessible,但它无效!?
# app/models/product.rb
class Product < ActiveRecord::Base
attr_accessible :descripton, :image_url, :price, :title
end
更新:
*我想通了,这是一个拼写错误的问题,无论如何,它的工作,但我没有想到在scema中添加attr_accessable的实际解决方案,而不是在模型中添加它。如果这是一个坏主意,为什么呢?*
答案 0 :(得分:1)
attr_accessible不会继续使用schema.rb。它继续你的模型。根据您在上面发布的代码,您可能需要:
# app/models/product.rb
class Product < ActiveRecord::Base
attr_accessible :title, :description # Add as needed
end