从控制器中提取代码的最佳方法

时间:2014-08-03 09:16:52

标签: ruby-on-rails ruby

在OS X上使用Pow和Rails 4。

我有SearchController接受查询并在各种后端服务(YouTube,SoundCloud,Last.fm等)上搜索它。

我想把这些后端放在他们自己的文件/类中,以保持代码清洁,并且可以轻松添加更多后端。

所以我的问题是:我应该把这些文件放在哪里?我尝试创建一个名为backend的文件夹,其中包含所有文件,并将其放在app/controllerapp/models中。然后我将require 'backend/lastfm.rb'放入我的控制器中,它可以工作。但它只加载一次,所以每次我做出改变时我都要touch tmp/restart.txt。不理想!

将其放入lib时会出现同样的问题,即使我尝试使用预先加载。

那么我在哪里可以放置这个文件夹,以便我可以使用SearchController中的代码并让它在每次请求时重新加载文件(在开发模式下)?

谢谢!

1 个答案:

答案 0 :(得分:1)

要自动加载您的文件夹,您应该添加application.rb的路径:

class Application < Rails::Application
  config.autoload_paths += %W(#{config.root}/app/backend/*)
end

现在您backend文件夹自动加载,并且您不需要require个文件。

相关问题