如何在资产管道中包含ActionView助手?

bru*_*cat 10 ruby-on-rails actionviewhelper asset-pipeline

如何包含资源管道执行上下文可访问的Rails视图助手?

一个示例用例是使用form_tag帮助器方法为表单生成标记,并使其可用于Javascript模板(如handlebars,jst等).

我使用handlebar_assets gem,但这也适用于任何erb或haml模板.

bru*_*cat 29

创建一个初始化程序,并在资源的上下文中包含帮助程序,如下所示:

Rails.application.assets.context_class.class_eval do
  include ActionView::Helpers
  include MyAppHelper
  include Rails.application.routes.url_helpers
end
Run Code Online (Sandbox Code Playgroud)

取自这个链轮问题

  • @ jackerman09没问题:"创建一个初始化程序",请参阅http://guides.rubyonrails.org/configuring.html#using-initializer-files (2认同)

小智 11

上面的答案已经过时了.从sprockets-rails 3开始,适当的接口是一个配置块,如下所示:

Rails.application.config.assets.configure do |env|
  env.context_class.class_eval do
    # include SomeHelper
  end
end
Run Code Online (Sandbox Code Playgroud)

此配置块仍应放在初始化程序中.

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