4


0

テンプレート/部分を手でレンダリングするときにヘルパーを含める

次のコードを使用して、後で使用できる文字列にテンプレートをレンダリングします。

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では、これは機能しなくなりました。 それでは、ヘルパーメソッドをテンプレートで使用できるようにするにはどうすればよいですか?

1 Answer


5


`abstract_controller / rendering.rb`を見たいと思うかもしれません。rails3では次のようなことができるはずです:

renderer = ApplicationController.view_context_class.new(...)

そして、モジュール master_helper_module`は _helpers`という名前でアクセスされるようになり、既に `view_context_class`に含まれているはずです。