如何将Rails视图助手包含到资产管道执行上下文中?一个示例用例是使用form_tag助手方法生成表单标记,并使其可用于JavaScript模板(如handlebars,jst等)。我使用handlebar_assets gem,但这也适用于任何erb或haml模板。
创建一个初始化器并将帮助程序包含在资产的上下文中,就像这样:
Rails.application.assets.context_class.class_eval do
include ActionView::Helpers
include MyAppHelper
include Rails.application.routes.url_helpers
end
来源于这个sprockets问题
上面的答案已经过时。从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#issuecomment-170707886
template = ERB.new(html) template.result(binding)
。如果没有这个,我就无法使用concat和其他简单的辅助函数。 - benathon