2012-11-14 41 views
0

好男人我有一個問題 - 因爲我創建了一個模型和表AdminUser,然後我試圖給它添加值,然後控制檯打印我...任何想法?將值添加到表 - ActiveRecord :: DangerousAttributeError:更新由ActiveRecord定義

1.9.3-p286 :020 > AdminUser 
=> AdminUser(id: integer, first_name: string, last_name: string, email: string, pass: string, date_reg: datetime, update: datetime) 

1.9.3-p286 :021 > AdminUser.all 
    AdminUser Load (0.2ms) SELECT "admin_user".* FROM "admin_user" 
=> [] 

1.9.3-p286 :022 > me = AdminUser 
=> AdminUser(id: integer, first_name: string, last_name: string, email: string, pass: string, date_reg: datetime, update: datetime) 
1.9.3-p286 :023 > me.new 
ActiveRecord::DangerousAttributeError: update is defined by ActiveRecord 
    from /home/wojtek/.rvm/gems/ruby-1.9.3-p286/gems/activerecord-3.2.8/lib/active_record/attribute_methods.rb:91:in `instance_method_already_implemented?' 
    from /home/wojtek/.rvm/gems/ruby-1.9.3-p286/gems/activemodel-3.2.8/lib/active_model/attribute_methods.rb:263:in `block in define_attribute_method' 
    from /home/wojtek/.rvm/gems/ruby-1.9.3-p286/gems/activemodel-3.2.8/lib/active_model/attribute_methods.rb:260:in `each' 
    from /home/wojtek/.rvm/gems/ruby-1.9.3-p286/gems/activemodel-3.2.8/lib/active_model/attribute_methods.rb:260:in `define_attribute_method' 
    from /home/wojtek/.rvm/gems/ruby-1.9.3-p286/gems/activemodel-3.2.8/lib/active_model/attribute_methods.rb:256:in `block in define_attribute_methods' 
    from /home/wojtek/.rvm/gems/ruby-1.9.3-p286/gems/activemodel-3.2.8/lib/active_model/attribute_methods.rb:256:in `each' 
    from /home/wojtek/.rvm/gems/ruby-1.9.3-p286/gems/activemodel-3.2.8/lib/active_model/attribute_methods.rb:256:in `define_attribute_methods' 
    from /home/wojtek/.rvm/gems/ruby-1.9.3-p286/gems/activerecord-3.2.8/lib/active_record/attribute_methods.rb:66:in `block in define_attribute_methods' 
    from <internal:prelude>:10:in `synchronize' 
    from /home/wojtek/.rvm/gems/ruby-1.9.3-p286/gems/activerecord-3.2.8/lib/active_record/attribute_methods.rb:63:in `define_attribute_methods' 
    from /home/wojtek/.rvm/gems/ruby-1.9.3-p286/gems/activerecord-3.2.8/lib/active_record/attribute_methods.rb:168:in `respond_to?' 
    from /home/wojtek/.rvm/gems/ruby-1.9.3-p286/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:398:in `__run_callback' 
    from /home/wojtek/.rvm/gems/ruby-1.9.3-p286/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:385:in `_run_initialize_callbacks' 
    from /home/wojtek/.rvm/gems/ruby-1.9.3-p286/gems/activesupport-3.2.8/lib/active_support/callbacks.rb:81:in `run_callbacks' 
    from /home/wojtek/.rvm/gems/ruby-1.9.3-p286/gems/activerecord-3.2.8/lib/active_record/base.rb:501:in `initialize' 
    from (irb):23:in `new' 
    from (irb):23 
    from /home/wojtek/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.8/lib/rails/commands/console.rb:47:in `start' 
    from /home/wojtek/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.8/lib/rails/commands/console.rb:8:in `start' 
    from /home/wojtek/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.8/lib/rails/commands.rb:41:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>'1.9.3-p286 :024 > 
+1

me = AdminUser.new – MurifoX

+0

您是否覆蓋了AdminUser模型的更新方法? – MrYoshiji

回答

3

你的問題是,update是你的模型中的一列。但更新也是由Active Record定義的一種方法。因此,如果您嘗試訪問admin.update,則導軌不會知道您在說什麼。如果您將update列重命名爲其他內容,則應該沒問題。

你可能想看看時間戳。 http://guides.rubyonrails.org/migrations.html#special-helpers它在我看來像你想要做的update列。

+0

具體而言,您想將其重命名爲'updated_at',並使用相關的'created_at'字段。 – DGM

相關問題