我在ruby中有一个哈希,它包含我想为javascript函数输入的选项
我的哈希是(因为它以irb打印)
@options = [{:source=>"2", :tries=>"3"}]
我的javascript函数接受
等选项myFunc({source: num, tries: num})
所以如果在js.erb文件中我做
myFunc(<%=j @options %>)
这将导致
{:source=>\"2\", :tries=>\"3\"}
执行j @edges.to_json
会导致
\"{:source=>\\\"2\\\", :target=>\\\"3\\\"} }\"
执行j @edges.to_json.html_safe
会导致
\"{:source=>\\\"2\\\", :target=>\\\"3\\\"}\"
有没有办法让它输出更友好的javascript哈希?
答案 0 :(得分:4)
不要使用j
。尝试
myFunc(<%= @options.to_json %>)
答案 1 :(得分:0)
您可以使用gsub
删除不需要的字符:
@options[0].to_json.gsub(/\"/,'')
# => "{source:2,tries:3}"