2010-09-06 40 views
1

工作,我有一個Rails型號:的ActiveRecord不會對一個表

ruby-1.9.2-p0 > NavItem 
=> NavItem(id: integer, item_identifier: string, description: string, description2: string, packing_unit: string, sales_unit_of_measure: string, ean_code: string, evp_price: string, item_category_code: string, class: string, product_group_code: string, maintenance_status: string) 

如果我想創建一個記錄:

ruby-1.9.2-p0 > NavItem.create 
NoMethodError: undefined method `has_key?' for nil:NilClass 
from /Users/amueller/.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.0.0/lib/active_support/whiny_nil.rb:48:in `method_missing' 
from /Users/amueller/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.0/lib/active_record/attribute_methods/read.rb:69:in `class' 
from /Users/amueller/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.0/lib/active_record/persistence.rb:285:in `attributes_from_column_definition' 
from /Users/amueller/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.0/lib/active_record/locking/optimistic.rb:62:in `attributes_from_column_definition' 
from /Users/amueller/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.0/lib/active_record/base.rb:1396:in `initialize' 
from /Users/amueller/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.0/lib/active_record/base.rb:496:in `new' 
from /Users/amueller/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.0/lib/active_record/base.rb:496:in `create' 
from (irb):20 
from /Users/amueller/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.0/lib/rails/commands/console.rb:44:in `start' 
from /Users/amueller/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.0/lib/rails/commands/console.rb:8:in `start' 
from /Users/amueller/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.0/lib/rails/commands.rb:23:in `<top (required)>' 
from script/rails:6:in `require' 
from script/rails:6:in `<main>' 

我能做些什麼?我有其他模型,工作得很好。我不知道如何抓住這個錯誤:(是否有任何的保留字中的列或做的Rails嘗試通過對本公約適用於魔術的一些配置?

我用Rails3中使用Ruby 1.9.2。

回答

5

你使用class(保留字)作爲你的列名之一如果你改變它,你應該沒問題

0

如果你不想改變數據庫模式,你可以覆蓋'class'方法:

class NavItem < ActiveRecord::Base 
    def class 
    NavItem 
    end 
end 
相關問題