문제

How to include Rails view helpers to be accesible by assets pipeline execution context?

An example use case would be to generate the markup for a form, using form_tag helper method, and make it available to a Javascript template (like handlebars, jst, etc.).

I use handlebar_assets gem, but this should apply to any erb or haml template too.

도움이 되었습니까?

해결책

Create a inititializer and include the helpers in the context of the assets like this:

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

Taken from this sprockets issue

다른 팁

The above answer is now out of date. As of sprockets-rails 3, the appropriate interface is a configure block, like so:

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

This configure block should still be placed in an initializer.

reference: https://github.com/rails/sprockets-rails/issues/307#issuecomment-170707886

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top