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
、ロード エラーは発生しないため、単にクラスが存在するという事実だけが問題の原因ではありません。問題は、使用しようとしたときにのみ発生します。
この継承を行うにはどうすればよいですか? また、この問題が発生するのはなぜですか?