2013-11-27 17 views
0

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

该文件在rails引擎中,而不是在rails应用程序中。

回答

1

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

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

class ApplicationController 
    include <module name> 

    ... 
end 
+0

对于rails引擎,在/ config下没有application.rb。我们可以在rails/config下创建application.rb吗?或者对于轨道引擎解决方案会有所不同。谢谢。 – user938363

+0

有趣。这是一个默认文件。请参阅:http://guides.rubyonrails.org/configuring.html – CDub

1

更好的地方,该模块(比如MY_CUSTOM_MODULE)在随机配备的config.autoloads_path的 “LIB” 文件夹。然后,您可以按如下方式将模块包含在ApplicationController中:

class ApplicationController 
    include <MY_CUSTOM_MODULE> 
    ... excluded for brevity... 
end 
相关问题