Rails 4.x和app / controllers / Concer中的子文件夹

时间:2015-04-02 05:50:33

标签: ruby-on-rails ruby-on-rails-4

我喜欢在我的应用程序中保持组织有序,因为我只在ROR中编码了一年。我已经知道如何使用app / controllers / concerns目录将自定义模块包含在控制器中。

这很好但是我想知道是否有办法将子文件夹添加到Concer文件夹以允许更好的组织。

例如app / controllers / concerns / members / profile_methods.rb,该模块名为'ProfileMethods'。如果我包含'ProfileMethods',RubyMine会看到该模块并允许我包含它,包括在工具提示窗格中将其作为选项提供。然而,如果Rails服务器位于app / controllers / concern的子文件夹中,那么'ProfileMethods'是一个未定义的常量。

我是否需要添加到rails应用程序配置中?任何输入都会很棒,因为你不能用子文件夹进一步组织关注目录似乎有点不合逻辑。

1 个答案:

答案 0 :(得分:3)

保持组织有序的最佳方法是按以下方式命名模块。这样,您就可以在文件和代码本身中组织代码。

module Members
  module ProfileMethods
    extend ActiveSupport::Concern 
    ... 
  end
end 

这样它可以很好地加载你的模块。另一个选项是调整eager_load_paths中的config/application.rb