12

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

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

私はhandlebar_assetsgemを使用していますが、これは任意のテンプレートにも適用されますerbhaml

4

2 に答える 2

29

イニシエーターを作成し、次のようなアセットのコンテキストにヘルパーを含めます。

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

このスプロケットの問題からの抜粋

于 2013-01-11T18:19:21.140 に答える
15

上記の回答は現在古くなっています。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

于 2016-01-11T23:09:16.443 に答える