我有一些軌道引擎 '核心',我有:Rails的發動機自動加載的擔憂路徑
# core/app/models/core/concerns/user_helper.rb
module Core
module UserHelper
extend ActiveSupport::Concern
included do
# some methods
end
end
end
# core/app/models/core/user.rb
module Core
class User < ActiveRecord::Base
include Core::UserHelper
end
end
但是它說未初始化的常量核心:: UserHelper。如此看來引擎默認不加載其顧慮,所以我增加了它的自動加載路徑
module Core
class Engine < ::Rails::Engine
config.autoload_paths += %W(#{Core::Engine.root}/app/models/core/concerns)
isolate_namespace Core
end
end
現在我結束了這個錯誤:無法自動加載不斷UserHelper,預計MYAPP /核心/應用/ models/core/concern/user_helper.rb來定義它
那麼這裏有什麼問題?當我檢查指南http://edgeguides.rubyonrails.org/engines.html,它沒有關注目錄中的問題,而是在lib /關注下,並且都提到了使用Core :: Concerns :: MyConcern時的擔心,那麼在哪裏將關注點放在引擎中呢?
感謝
編輯
尤里評論解釋這個問題,似乎在軌引擎的擔憂目錄沒有得到任何特殊待遇,它被視爲下一個車型普通的目錄,所以其中的模塊必須位於Concerns名稱空間內,如果我理解正確,在包含關注點時,還必須將其包含在Concerns namesapace中。我很驚訝這在文檔中沒有提及。
我認爲這個模塊應該被命名爲Core :: Concerns :: UserHelper,它可以留在'app/models/concerns'目錄中 –
似乎解決了這個問題,另一個問題引發了但我不認爲它是另一個問題,非常感謝:) –
沒問題,很高興幫助:) –