Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用ruby哈希作为javascript函数的选项_Javascript_Ruby On Rails_Ruby_Ruby On Rails 3_Hash - Fatal编程技术网

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

如何使用ruby哈希作为javascript函数的选项,javascript,ruby-on-rails,ruby,ruby-on-rails-3,hash,Javascript,Ruby On Rails,Ruby,Ruby On Rails 3,Hash,我在ruby中有一个hash,它包含我想要为javascript函数输入的选项 我的哈希是(在irb中打印时) 我的javascript函数接受如下选项 myFunc({source: num, tries: num}) 所以如果在js.erb文件中 myFunc(<%=j @options %>) 执行j@edges.to_json会导致 \&quot;{:source=&gt;\\\&quot;2\\\&quot;, :target=&

我在ruby中有一个hash,它包含我想要为javascript函数输入的选项

我的哈希是(在irb中打印时)

我的javascript函数接受如下选项

myFunc({source: num, tries: num})
所以如果在js.erb文件中

myFunc(<%=j @options %>)
执行
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友好的散列?

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

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

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

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

不要使用
j
。试一试

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

不要使用
j
。试一试

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

try@options[0]。若要替换内容,请尝试
@options。若要替换内容,请尝试
@options。若要替换内容,请尝试
@options.to_json.html\u safe