我們有一個擔心,我們想用作用戶類的混合。這個問題可以在我們用於多種產品的單獨導軌引擎中找到。在模塊中使用關注嵌套
在這個引擎中的一切,我們保持在同一個模塊中,我們將稱之爲MyEngine。
module MyEngine
module EngineUser
extend ActiveSupport::Concern
end
end
而且我們特林包括像我們的Rails應用程序的任何其他關注:
class User < ActiveRecord::Base
include MyEngine::EngineUser
# ...
end
這將導致在那裏說了一個錯誤:(格式化有的爲可讀性)
/Users/foo/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.4/lib/active_support/dependencies.rb:495:in'load_missing_constant':
無法自動加載不斷EngineUser, 預計 /Users/foo/Perforce/engine_folder/app/models/concerns/engine_user.rb 來定義它
這.....是正確的文件.. 。<。 <
如果我刪除圍繞類的module MyEngine
,並在User中形成include,那麼它工作得很好。
我知道rails在後臺自動加載,但爲什麼不能正常工作?它知道該文件有類...如果我將它移動到引擎/應用程序/它擔心它說它無法在那裏找到它。太令人沮喪了。
所以我認爲這可行,但我最終選擇了另一種解決方案,我將很快發佈。 謝謝,雖然! – Avaista