0
我試圖讓一些類從Rails lib目錄中的基類繼承。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
另外,如果我從lib/ab_tests/base.rb
刪除提及AbTests::Base
那麼有沒有加載錯誤,所以它不是簡單的類存在引起該問題的事實。只有當我嘗試使用它時纔會出現此問題。
我該如何完成這個繼承,爲什麼會發生這個問題?