2

我在 ruby​​ 中有一个哈希值,其中包含我想为 javascript 函数输入的选项

我的哈希是(因为它在 irb 中打印)

@options = [{:source=>"2", :tries=>"3"}]

我的 javascript 函数接受类似的选项

myFunc({source: num, tries: num})

所以如果在一个 js.erb 文件中我做

myFunc(<%=j @options %>)

这会导致

{:source=&gt;\&quot;2\&quot;, :tries=&gt;\&quot;3\&quot;}

结果j @edges.to_json_

 \&quot;{:source=&gt;\\\&quot;2\\\&quot;, :target=&gt;\\\&quot;3\\\&quot;} }\&quot;

结果j @edges.to_json.html_safe_

\"{:source=>\\\"2\\\", :target=>\\\"3\\\"}\"

有没有办法让它输出一个对 JavaScript 更友好的哈希?

4

2 回答 2

4

不要使用j。尝试

myFunc(<%= @options.to_json %>)
于 2013-03-19T16:03:33.850 回答
0

您可以使用gsub删除那些不需要的字符:

@options[0].to_json.gsub(/\"/,'')
# => "{source:2,tries:3}"
于 2013-03-19T16:02:11.830 回答