Как включить помощников ActionView в конвейер ресурсов?

Как включить помощники вида Rails, чтобы они были доступны контексту выполнения конвейера активов?

Примером использования будет генерировать разметку для формы, используя form_tag вспомогательный метод и сделайте его доступным для шаблона Javascript (например, руль, JST и т. д.).

Я использую гем handlebar_assets, но это должно относиться к любому erb или же haml шаблон тоже.

2 ответа

Решение

Создайте инициализатор и включите помощников в контекст таких ресурсов:

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

Взято из этого вопроса звездочек

Приведенный выше ответ устарел. Начиная с sprockets-rails 3, соответствующий интерфейс является блоком конфигурации, например:

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

Другие вопросы по тегам