我们有一个担心,我们想用作用户类的混合。这个问题可以在我们用于多种产品的单独导轨引擎中找到。在模块中使用关注嵌套
在这个引擎中的一切,我们保持在同一个模块中,我们将称之为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