我喜欢在我的应用程序中保持组织有序,因为我只在ROR中编码了一年。我已经知道如何使用app / controllers / concerns目录将自定义模块包含在控制器中。
这很好但是我想知道是否有办法将子文件夹添加到Concer文件夹以允许更好的组织。
例如app / controllers / concerns / members / profile_methods.rb,该模块名为'ProfileMethods'。如果我包含'ProfileMethods',RubyMine会看到该模块并允许我包含它,包括在工具提示窗格中将其作为选项提供。然而,如果Rails服务器位于app / controllers / concern的子文件夹中,那么'ProfileMethods'是一个未定义的常量。
我是否需要添加到rails应用程序配置中?任何输入都会很棒,因为你不能用子文件夹进一步组织关注目录似乎有点不合逻辑。
答案 0 :(得分:3)
保持组织有序的最佳方法是按以下方式命名模块。这样,您就可以在文件和代码本身中组织代码。
module Members
module ProfileMethods
extend ActiveSupport::Concern
...
end
end
这样它可以很好地加载你的模块。另一个选项是调整eager_load_paths
中的config/application.rb
。