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

12
如何将Rails视图助手包含到资产管道执行上下文中?一个示例用例是使用form_tag助手方法生成表单标记,并使其可用于JavaScript模板(如handlebars,jst等)。我使用handlebar_assets gem,但这也适用于任何erb或haml模板。
2个回答

29

创建一个初始化器并将帮助程序包含在资产的上下文中,就像这样:

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

来源于这个sprockets问题


这对我也起作用,当我想要将自定义的ERB渲染为字符串时,使用template = ERB.new(html) template.result(binding)。如果没有这个,我就无法使用concat和其他简单的辅助函数。 - benathon
@brutuscat,你能澄清一下你会把这段代码放在哪里吗?谢谢。 - jackerman09
2
@jackerman09 没问题: "创建一个初始化器", 在这里查看更多信息 http://guides.rubyonrails.org/configuring.html#using-initializer-files - brutuscat
请参考以下链接:https://github.com/rails/sprockets-rails/issues/307#issuecomment-170707886 - bhaibel

15

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接