发票项目是rails 3.2.8应用程序中的一个模型。其定义是:
class InvoiceItem < ActiveRecord::Base
belongs_to :invoice
belongs_to :quote_test_item, :class_name => 'QuoteTestItem'
belongs_to :lease_usage_record, :class_name => 'LeaseUsageRecord'
validates :lease_usage_record_id, :uniqueness => { :scope => :invoice_id }, :unless => "lease_usage_record_id.nil?"
end
共有3个关联。如果我是发票项目对象。i.quote_test_item将创建错误(在rails控制台中):
irb(main):037:0> i.quote_test_item
NameError: uninitialized constant InvoiceItem::quote_test_item
i是:
irb(main):038:0> i
=> #<InvoiceItem id: 6, invoice_id: 6, lease_usage_record_id: nil, created_at: "2012-07-25 19:28:37", updated_at: "2012-07-25 19:28:37", quote_test_item_id: 1>
但是i.invoice和i.lease_usage_record都通过了,没有产生任何错误。例如:
irb(main):036:0> i.lease_usage_record
=> nil
为什么只有i.quote_test_item创建了错误?非常感谢。
确保您已经执行了所有迁移。您可能还想检查您的QuoteTestItem
(顺便说一句,您不必指定:classname
,因为它是推断的),以检查您是否有相应的has_one :invoice_item
或has_many :invoice_items
,这取决于您对其建模的方式。