2013-06-12 35 views
1

我在Rails應用程序中創建了一個非常簡單的插件系統。這些插件可以在他們的子文件夾中引入自己的視圖和控制器。如何在多個目錄中搜索控制器?

因此,控制器搜索時,我想的Rails在這些目錄中一看:

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

我加了那些插件目錄到我的autoload_path在application.rb,但是沒有效果。

+0

你應該考慮使用可掛載的引擎http://guides.rubyonrails.org/engines.html –

+0

我知道它們存在。但我不想使用它們,並有我的理由...... – Franz

+0

我只是說這是非常不軌道的方式。 –

回答

0

原來的方案是將所述目錄到config.autoload_paths設置一樣容易。

每一個新的文件夾可以config/application.rb加入這樣的:

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

這實際上可以確保文件夾及其所有子目錄都自動加載。

(我是不是能夠使以前這項工作,因爲我的控制器有一個不存在的父類。出於某種原因,Rails的告訴我的路線是不存在的,而不是顯示的錯誤。)