Я пытаюсь сделать некоторые классы наследуемыми от базового класса в каталоге Rails lib.Inheritance in Rails каталог lib
Установка выглядит следующим образом:
#lib/ab_tests/base.rb
module AbTests
class Base
# some methods...
end
end
#lib/ab_tests/first_test.rb
module AbTests
class FirstTest < AbTests::Base
# some methods...
end
end
я потребовать, чтобы эти файлы в config/application.rb
в довольно стандартным способом
config.autoload_paths += %W(#{Rails.root}/lib/ab_tests)
Однако, когда я пытаюсь запустить сервер, я получаю фатальная LoadError
:
[some path].../activesupport-3.2.12/lib/active_support/dependencies.rb:503:in `load_missing_constant': Expected [project name]/lib/ab_tests/base.rb to define Base (LoadError)
Я пробовал оба следующих и это одна и та же проблема каждый раз.
#lib/ab_tests/first_test.rb
class FirstTest < ::AbTests::Base
#lib/ab_tests/first_test.rb
class FirstTest < Base
Кроме того, если удалить ссылку на AbTests::Base
из lib/ab_tests/base.rb
, то нет никакой ошибки нагрузки, так что это не просто тот факт, что класс существует, что вызывает проблему. Проблема возникает только тогда, когда я пытаюсь ее использовать.
Как я могу выполнить это наследование и почему возникает эта проблема?