Rails использует неправильный класс в принадлежащих - PullRequest
0 голосов
/ 28 мая 2010

У меня есть приложение, управляющее тестами программного обеспечения, и класс с именем TestResult:

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: неопределенный метод 'find' для ActiveRecord :: TestCase: Class из /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/associations/belongs_to_association.rb:49:in 'send'

из /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/associations/belongs_to_association.rb:49:in 'find_target'

из /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/associations/association_proxy.rb:239:in 'load_target'

из /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/associations/association_proxy.rb:112:in 'reload'

из /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 ]

1 голос
/ 28 мая 2010

а как же

class TestResult < ActiveRecord::Base
  belongs_to :test_case, :class_name => "::TestCase"
end
0 голосов
/ 28 мая 2010

а как же

class TestResult < ActiveRecord::Base
  belongs_to :test_case
end
...