我正在使用 Rails 3.1 和链轮的东西。
我想使用 ERB 预处理 js 文件,然后使用 javascript_include_tag 包含该文件。它是从代码生成的,因此我使用 ERB 对其进行预处理,但我无法从 ActionView::Helpers::JavaScriptHelper 获取 escape_javascript 等帮助器
假设我的文件名为dynamic.js.erb,它包含
obj = {
name: "test",
tag: "<%= escape_javascript( image_tag( "logo.png" ) )%>"
};
如何阻止它产生错误:
throw Error("NoMethodError: undefined method `escape_javascript' for #<#<Class:0x1067da940>:0x116b2be18>
(in /Users/me/site/app/assets/javascripts/dynamic.js.erb)")
当我访问本地服务器并询问时/assets/dynamic.js
您可以将 Rails JS 帮助程序包含到您自己的类中。
class Helper
include ActionView::Helpers::JavaScriptHelper
def self.escape_js( text )
@instance ||= self.new
return @instance.escape_javascript( text )
end
end
然后在您的 ERB 文件中使用它:
obj = {
name: "test",
tag: "<%= Helper.escape_js( image_tag( "logo.png" ) ) )%>"
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)