【问题标题】:How to use a ruby hash as a options for javascript function如何使用 ruby​​ 哈希作为 javascript 函数的选项
【发布时间】:2013-03-08 08:59:51
【问题描述】:

我在 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 更友好的哈希?

【问题讨论】:

  • 试试@options[0].to_json
  • 内容正在被转义,试试@options.to_json.html_safe

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


【解决方案1】:

不要使用j。试试

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-03-01
      • 2011-07-01
      • 1970-01-01
      • 2014-03-03
      • 2017-01-16
      • 2016-12-29
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      相关资源
      最近更新 更多