如何在多个目录中搜索控制器?

时间:2013-06-12 11:12:00

标签: ruby-on-rails controller

我在Rails应用程序中创建了一个非常简单的插件系统。这些插件可以在其子文件夹中带来自己的视图和控制器。

因此,在搜索控制器时,我希望Rails查看其中一个目录:

  • app/controllers
  • plugins/plugin1/controllers
  • plugins/plugin2/controllers

我将这些插件目录添加到application.rb中的autoload_path,但这没有效果。

1 个答案:

答案 0 :(得分:0)

事实证明,解决方案就像将目录添加到config.autoload_paths设置一样简单。

每个新文件夹都可以添加到config/application.rb中,如下所示:

config.autoload_paths += Dir["#{config.root}/plugins/plugin1/controllers/**/"]

这实际上确保文件夹及其所有子目录都是自动加载的。

(之前我无法完成这项工作,因为我的控制器有一个不存在的父类。出于某种原因,Rails告诉我路线不存在而不是显示错误。)