【问题标题】:Parse ruby object in JavaScript (Rails)在 JavaScript (Rails) 中解析 ruby​​ 对象
【发布时间】:2010-12-13 15:01:47
【问题描述】:

在我看来,我有一个对象,并希望通过 javascript 处理这个对象 我试着

  var js_obj  = jQuery.parseJSON('<%=raw @rails_obj.to_json %>');

它有效。但是如果我有“'”符号,新的字符串符号,,,,这个对象都失败了。

有人知道这样做的好方法吗?

【问题讨论】:

  • thx Falcon ......它对我有帮助:)。我也面临同样的问题。

标签: javascript ruby-on-rails json


【解决方案1】:

JSON 是开箱即用的有效 Javascript,所以为什么不这样做:

var js_obj = <%= @rails_obj.to_json %>;

【讨论】:

  • +1!我的大脑离开了我。我不敢相信我没有看到。
  • JSON 它不是对象 - 它只是一个文本
  • @Falcon:JSON 是有效的 JavaScript。它是这样工作的。 JSON(JavaScript Object Notation)是 JavaScript 语法的一个子集。这是正确的答案。忘记我的。
  • 我遇到了一些语法错误,必须添加 &lt;%= @rails_obj.to_json.to_s.html_safe %&gt; 才能正常工作。
【解决方案2】:

我觉得这是最好的方法。每次都工作

 <%= javascript_tag "var obj = #{@obj.to_json}" %>

【讨论】:

    【解决方案3】:

    然后您需要转义所有单引号。 ActionView 有一个转义 JavaScript 的助手:ActionView::Helpers::JavaScriptHelper#escape_javascript

    【讨论】:

      【解决方案4】:

      Rails 5.X

      控制器

      def new
            @organization_json = Organization.first().to_json
      end
      

      查看

      <script>
          var organization_json = <%= @organization_json.html_safe %>;
      <script>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-09
        • 2011-09-24
        • 2016-03-09
        • 2020-01-08
        • 2012-09-25
        相关资源
        最近更新 更多