2013-01-11 10 views
9

Railsビューヘルパーをアセットパイプライン実行コンテキストにアクセスできるようにするにはどうすればいいですか?アセットパイプラインにActionViewヘルパーを含めるには?

例の使用例は、form_tagヘルパーメソッドを使用してフォームのマークアップを生成し、Javascriptテンプレート(handlebars、jstなど)で使用できるようにすることです。

私はhandlebar_assets gemを使用しますが、これはerbまたはhamlテンプレートにも適用されます。

答えて

29

inititializerを作成し、このような資産の文脈でヘルパーを含める:

Rails.application.assets.context_class.class_eval do 
    include ActionView::Helpers 
    include MyAppHelper 
    include Rails.application.routes.url_helpers 
end 

は、上記の答えが古くなって、今あるこのsprockets issue

+0

また、これは私のために働きました。これがなければ私はコンカットや他の簡単なヘルパーを使うことができませんでした。 – portforwardpodcast

+0

@brutuscat、あなたはこのコードをどこに置くのですか?ありがとう – jackerman09

+2

@ jackerman09問題はありません: "inititializerを作成"、詳細はこちらhttp://guides.rubyonrails.org/configuring.html#using-initializer-files – brutuscat

8

から撮影。スプロケットレール3の場合、適切なインターフェースは次のようにconfigureブロックです。

Rails.application.config.assets.configure do |env| 
    env.context_class.class_eval do 
    # include SomeHelper 
    end 
end 

この構成ブロックはイニシャライザに配置する必要があります。

参照:私は `テンプレート= ERB.new(HTML) template.result(結合)`を持つ文字列にカスタムERBをレンダリングしたいときhttps://github.com/rails/sprockets-rails/issues/307#issuecomment-170707886

関連する問題