如何将Rails视图助手包含在资产管道执行上下文中?如何在资产管道中包含ActionView助手?
一个示例用例是使用form_tag
辅助方法为表单生成标记,并使其可用于Javascript模板(如handlebars,jst等)。
我使用handlebar_assets宝石,但这应该适用于任何erb
或haml
模板。
如何将Rails视图助手包含在资产管道执行上下文中?如何在资产管道中包含ActionView助手?
一个示例用例是使用form_tag
辅助方法为表单生成标记,并使其可用于Javascript模板(如handlebars,jst等)。
我使用handlebar_assets宝石,但这应该适用于任何erb
或haml
模板。
创建inititializer,包括在这样的资产范围内的助手:
Rails.application.assets.context_class.class_eval do
include ActionView::Helpers
include MyAppHelper
include Rails.application.routes.url_helpers
end
以上回答是已经过时服用。由于链轮护栏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
这也为我工作时,我想呈现的自定义ERB到字符串'模板= ERB.new(HTML) template.result(绑定)'。没有这个,我无法使用concat和其他简单的助手。 – portforwardpodcast
@brutuscat,你能澄清一下你会把这段代码放在哪里吗?谢谢 – jackerman09
@ jackerman09没问题:“创建inititializer”,在这里看到http://guides.rubyonrails.org/configuring.html#using-initializer-files – brutuscat