我有一個應用程序管理軟件的測試和一類名爲TestResult中:Rails使用錯誤的類在belongs_to的
class TestResult < ActiveRecord::Base
belongs_to :test_case, :class_name => "TestCase"
end
我現在Rails中的1.x遷移到2.3.5。
在Rails 1.x中一切正常。
當試圖訪問的Rails 2.3.5關聯,我得到以下錯誤:
NoMethodError:未定義的方法 '發現' ActiveRecord的:: TestCase的: 類從/ usr/lib中/紅寶石/寶石/1.8/gems/activerecord-2.3.5/lib/active_record/associations/belongs_to_association.rb:49:in'send'
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5 /lib/active_record/associations/belongs_to_association.rb:49:in'find_target'
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/associ ations/association_proxy.rb:239:in'load_target'
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/associations/association_proxy.rb:112:in' 「從/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/associations.rb:1250:in
'test_case'
我的問題是重裝:如何我告訴Rails使用我的TestCase類而不是ActiveRecord :: TestCase。
TestCase類:
class TestCase < ActiveRecord::Base
set_table_name "test_case"
has_many :test_results
belongs_to :component, :foreign_key => "subsystem_id"
belongs_to :domain, :foreign_key => "area_id"
belongs_to :use_case, :foreign_key => "use_case_id"
end
爲什麼要遷移到軌2.3.5?目前的版本是2.3.8?如果你已經完成了這項工作,我會嘗試遷移到rails 3.0,因爲它很快就會到期 – jigfox 2010-05-28 10:51:59
我相信如果ruby正在尋找'ActiveRecord :: TestCase',它沒有找到'TestCase'。你能發佈更多的代碼嗎? TestCase類? – jigfox 2010-05-28 10:53:23
爲什麼是2.3.5?好吧,就像兩個月前剛開始遷移一樣,忘記更新軌道。現在進行了升級,但並未解決此問題。由於似乎沒有rails 3發佈日期,並且我們必須在6月底之前完成遷移,所以時間太短... – macsniper 2010-05-28 11:05:30