2015-04-02 45 views
2

我喜欢将事情组织在我的应用程序中,因为我只在ROR中编写了一年的代码。我已经知道如何使用应用程序/控制器/关注目录来将自定义模块包含在控制器中。应用程序/控制器/关注中的Rails 4.x和子文件夹

这是伟大的,但我想知道是否有办法将子文件夹添加到关注文件夹,以便更好的组织。

例如app/controllers/concerns/members/profile_methods.rb,该模块名为'ProfileMethods'。如果我包含'ProfileMethods'RubyMine,请参阅模块,并允许我将其包含在内,包括将其作为选项提供给工具提示窗格。然而,Rails服务器说,'ProfileMethods'是一个未定义的常量,如果它在app/controllers /关注的子文件夹中。

有什么我必须添加到rails应用程序配置?任何输入都会很棒,因为您无法使用子文件夹进一步整理关注目录,这似乎有些不合逻辑。

回答

3

保持组织结构的最佳方式是按照以下方式命名模块。这样你就可以将你的代码组织在文件和代码中。

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

这样它会加载你的模块罚款。其他一种选择是调整eager_load_paths,例如config/application.rb

+0

因此,通过被称为'Members'的主模块,它会从这个实例'profile_methods.rb'中的'app/controllers/members/*。rb'中读取方法? – 2015-04-02 06:12:09

+1

其实它会来自'app/controllers/concerns/members/*',尽管你的变体也可以工作。 – 2015-04-02 06:13:45

+0

Woops我的意思是应用程序/控制器/关注/成员/ *:D谢谢大家的好建议! – 2015-04-02 06:25:39

相关问题