如何使用ruby哈希作为javascript函数的选项

时间:2013-03-19 15:29:56

标签: javascript ruby-on-rails ruby ruby-on-rails-3 hash

我在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哈希?

2 个答案:

答案 0 :(得分:4)

不要使用j。尝试

myFunc(<%= @options.to_json %>)

答案 1 :(得分:0)

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

@options[0].to_json.gsub(/\"/,'')
# => "{source:2,tries:3}"