转义字符串 – 在Javascript中输出rails字符串

我正在尝试将字符串值分配给我的.erb文件中的javascript对象,如下所示:

var data = { 'name': '', ... }; 

问题是,如果name的价值是Tom's small ears

data.name的输出将是Tom's small ears

有没有办法逃脱特殊字符?

我尝试做'name': ''但是Uncaught SyntaxError: Unexpected identifier输出到控制台。

输出Tom\'s small ears

根据MrYoshiji's回答编辑 @ Stefan的评论对我MrYoshiji's

您可以使用escape_javascript()来实现:

 var data = { 'name': "<%== escape_javascript @product.name %>", #... }; 

链接: http : //api.rubyonrails.org/classes/ActionView/Helpers/JavaScriptHelper.html#method-i-escape_javascript

这个方法的别名是j

  var data = { 'name': "<%== j @product.name %>" } 
 var data = { 'name': '<%=j @product.name.html_safe %>', ... };