2012-02-06 40 views
1

當我在評論對象上調用comment.save時,出現錯誤,有幫助調試?Rails 3 NoMethodError未定義的方法`名稱'

這裏是輸出:

NoMethodError: undefined method `name' for #<Comment:0x107b4c280> 
    from /Library/Ruby/Gems/1.8/gems/activemodel-3.0.5/lib/active_model/attribute_methods.rb:364:in `method_missing' 
    from /Library/Ruby/Gems/1.8/gems/activerecord-3.0.5/lib/active_record/attribute_methods.rb:46:in `method_missing' 
    from /Library/Ruby/Gems/1.8/gems/activemodel-3.0.5/lib/active_model/errors.rb:224:in `read_attribute_for_validation' 
    from /Library/Ruby/Gems/1.8/gems/activemodel-3.0.5/lib/active_model/errors.rb:224:in `send' 
    from /Library/Ruby/Gems/1.8/gems/activemodel-3.0.5/lib/active_model/errors.rb:224:in `add_on_blank' 
    from /Library/Ruby/Gems/1.8/gems/activemodel-3.0.5/lib/active_model/errors.rb:223:in `each' 
    from /Library/Ruby/Gems/1.8/gems/activemodel-3.0.5/lib/active_model/errors.rb:223:in `add_on_blank' 
    from /Library/Ruby/Gems/1.8/gems/activemodel-3.0.5/lib/active_model/validations/presence.rb:9:in `validate' 
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.5/lib/active_support/callbacks.rb:314:in `send' 
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.5/lib/active_support/callbacks.rb:314:in `_callback_before_1143' 
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.5/lib/active_support/callbacks.rb:414:in `_run_validate_callbacks' 
    from /Library/Ruby/Gems/1.8/gems/activemodel-3.0.5/lib/active_model/validations.rb:212:in `run_validations!' 
    from /Library/Ruby/Gems/1.8/gems/activemodel-3.0.5/lib/active_model/validations/callbacks.rb:67:in `run_validations!' 
    from /Library/Ruby/Gems/1.8/gems/activesupport-3.0.5/lib/active_support/callbacks.rb:413:in `_run_validation_callbacks' 
    from /Library/Ruby/Gems/1.8/gems/activemodel-3.0.5/lib/active_model/validations/callbacks.rb:67:in `run_validations!' 
    from /Library/Ruby/Gems/1.8/gems/activemodel-3.0.5/lib/active_model/validations.rb:179:in `valid?' 
    from /Library/Ruby/Gems/1.8/gems/activerecord-3.0.5/lib/active_record/validations.rb:55:in `valid?' 
    from /Library/Ruby/Gems/1.8/gems/activerecord-3.0.5/lib/active_record/validations.rb:75:in `perform_validations' 
    from /Library/Ruby/Gems/1.8/gems/activerecord-3.0.5/lib/active_record/validations.rb:43:in `save' 
    from /Library/Ruby/Gems/1.8/gems/activerecord-3.0.5/lib/active_record/attribute_methods/dirty.rb:21:in `save' 
    from /Library/Ruby/Gems/1.8/gems/activerecord-3.0.5/lib/active_record/transactions.rb:240:in `save' 
    from /Library/Ruby/Gems/1.8/gems/activerecord-3.0.5/lib/active_record/transactions.rb:292:in `with_transaction_returning_status' 
    from /Library/Ruby/Gems/1.8/gems/activerecord-3.0.5/lib/active_record/connection_adapters/abstract/database_statements.rb:139:in `transaction' 
    from /Library/Ruby/Gems/1.8/gems/activerecord-3.0.5/lib/active_record/transactions.rb:207:in `transaction' 
    from /Library/Ruby/Gems/1.8/gems/activerecord-3.0.5/lib/active_record/transactions.rb:290:in `with_transaction_returning_status' 
    from /Library/Ruby/Gems/1.8/gems/activerecord-3.0.5/lib/active_record/transactions.rb:240:in `save' 
    from /Library/Ruby/Gems/1.8/gems/activerecord-3.0.5/lib/active_record/transactions.rb:251:in `rollback_active_record_state!' 
    from /Library/Ruby/Gems/1.8/gems/activerecord-3.0.5/lib/active_record/transactions.rb:239:in `save' 
    from (irb):645 
    from :0>> 

...

出現這種情況後運行:

c = event.comment.new 
c.body = "test comment" 
c.save 

我讀過很多線程說,這是一個問題Rails版本和Rubygems版本,但我覺得很難相信。

+1

將您的模型定義添加到問題中。 – lucapette 2012-02-06 09:30:55

回答

5

下列之一:

  1. 你有一個電話一個節目或索引視圖來命名,即comment.name
  2. 你有名稱的驗證在你的註釋模型

,但很難從你所提供的信息中知道。你在哪裏得到錯誤?

+0

是的,#2是正確的。感謝那。遷移後,我不小心更新我的模型。我的模型仍然包含我在模型中驗證的「名稱」字段。只是得習慣滑軌錯誤:)再次感謝。 – botbot 2012-02-06 10:54:35

相關問題