如何将方法定义放入单个文件并将其包含在rails application_controller中?

时间:2013-11-27 04:20:23

标签: ruby-on-rails ruby-on-rails-3

我们的rails 3.2 application_controller中有一些方法定义。这些方法适用于所有控制器。我们希望将这些方法定义放在单个文件search_stats_actions.rb中,并将其包含在application_controller中。将删除文件search_stats_actions.rb的子目录以及如何将该文件包含在application_controller中?我们正在寻找首选的做法。

该文件位于rails引擎中,而不在rails app中。

2 个答案:

答案 0 :(得分:1)

对我来说,这将是一个放在lib目录下的模块。请确保config/application.rb中的lib目录中包含config.autoloads_path目录。有关详细信息,请参阅the Rails app configuration guide

然后,在ApplicationController中,您可以include您刚创建的模块。

class ApplicationController
  include <module name>

  ...
end

答案 1 :(得分:1)

最好将此模块(比如MY_CUSTOM_MODULE)放在config.autoloads_path中包含的“lib”文件夹中。然后,您可以在ApplicationController中包含该模块,如下所示

class ApplicationController
  include <MY_CUSTOM_MODULE>
  ... excluded for brevity...
end