如何在schema.rb中向数据库表添加attr_accessible

时间:2012-08-16 20:42:02

标签: ruby-on-rails model attributes schema

我在做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的实际解决方案,而不是在模型中添加它。如果这是一个坏主意,为什么呢?*

1 个答案:

答案 0 :(得分:1)

attr_accessible不会继续使用schema.rb。它继续你的模型。根据您在上面发布的代码,您可能需要:

# app/models/product.rb
class Product < ActiveRecord::Base
 attr_accessible :title, :description # Add as needed
end