手动渲染模板/局部视图时包括辅助函数

4
我使用以下代码将模板渲染为一个字符串,以便稍后使用:
renderer = ActionView::Base.new(MyApp::Application.config.view_path)
# INCLUDE HELPERS HERE
data = renderer.render(:partial => template, :locals => locals)

然而,我希望能够访问一些辅助工具(实际上是全部)。在Rails 2.3中,我可以这样做:

renderer.extend ApplicationController.master_helper_module

然而,从Rails 3开始,这种方法已经不再适用。那么,我该如何使我的辅助方法可用于模板中呢?


为什么要将模板渲染为字符串? - Damien MATHIEU
实际上,我正在将其渲染到一个文件中,稍后再传递给命令行实用程序。 - Daniel Abrahamsson
1个回答

5
您可能需要查看abstract_controller/rendering.rb。在Rails 3中,我们应该能够像这样做:
renderer = ApplicationController.view_context_class.new(...)

模块master_helper_module现在通过名称_helpers访问,它应该已经包含在view_context_class中。


谢谢,运行得很好!实际上,我最终包含了一个单一的帮助程序来分组功能,但这很好知道。 - Daniel Abrahamsson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接