アセットパイプライン実行コンテキストでアクセスできるようにRailsビューヘルパーを含めるにはどうすればよいですか?
ユースケースの例は、form_tag
ヘルパーメソッドを使用してフォームのマークアップを生成し、それをJavascriptテンプレート(ハンドルバー、jstなど)で使用できるようにすることです。
私はhandlebar_assetsgemを使用していますが、これは任意のテンプレートにも適用されますerb
。haml
アセットパイプライン実行コンテキストでアクセスできるようにRailsビューヘルパーを含めるにはどうすればよいですか?
ユースケースの例は、form_tag
ヘルパーメソッドを使用してフォームのマークアップを生成し、それをJavascriptテンプレート(ハンドルバー、jstなど)で使用できるようにすることです。
私はhandlebar_assetsgemを使用していますが、これは任意のテンプレートにも適用されますerb
。haml
イニシエーターを作成し、次のようなアセットのコンテキストにヘルパーを含めます。
Rails.application.assets.context_class.class_eval do
include ActionView::Helpers
include MyAppHelper
include Rails.application.routes.url_helpers
end
上記の回答は現在古くなっています。sprockets-rails 3の時点で、適切なインターフェイスは次のようにconfigureブロックです。
Rails.application.config.assets.configure do |env|
env.context_class.class_eval do
# include SomeHelper
end
end
この構成ブロックは、引き続き初期化子に配置する必要があります。
参照:https ://github.com/rails/sprockets-rails/issues/307#issuecomment-170707886