【问题标题】:Passing Ruby variable to javascript for post将 Ruby 变量传递给 javascript 以进行发布
【发布时间】:2013-09-05 00:29:56
【问题描述】:

我的视图中有 h 变量,h 变量:

[{"folder"=>"High Risk", "weight"=>"38.8", "stocks"=>[{"id"=>"id3", "name"=>"Indian Oil Corporation Ltd.", "weight"=>"14.4"}, {"id"=>"id5", "name"=>"Atul Auto Ltd.", "weight"=>"13.7"}, {"id"=>"id6", "name"=>"Hindustan Zinc Ltd.", "weight"=>"10.6"}]}, {"folder"=>"Expecting PE ratio", "weight"=>"42.3", "stocks"=>[{"id"=>"id7", "name"=>"Infosys Ltd.", "weight"=>"42.3"}]}, {"folder"=>"from kite", "weight"=>"12.8", "stocks"=>[{"id"=>"id8", "name"=>"Hindustan Unilever Ltd.", "weight"=>"12.8"}]}, {"folder"=>"Low Margin", "weight"=>"6.1", "stocks"=>[{"id"=>"id9", "name"=>"Jindal Steel & Power Ltd.", "weight"=>"6.1"}]}]

这是我在 view.erb 中的脚本

<script>
if (top.location != location) {
       top.location.href = document.location.href ;
    }
///Some function giving 'val' value

    jQuery.ajax({
     data: 'val=' + total_span,
     dataType: 'script',
     type: 'post',
     url: "/portfolio/slide_change"
     });

    </script>

我有两个疑问:

1)我应该如何以及在哪里声明新变量以从该文件中的 ruby​​ 代码中获取 h 值?(将 h 从 ruby​​ 传递到 javascript 的方法)

2)我想用 'val' 将这个变量也发布到反手,我该怎么做?是否可以一次发布两个变量,还是需要将 h 与 'val' 连接起来?

【问题讨论】:

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


【解决方案1】:

您可以在 ERB 中使用 ruby​​ 变量。假设您的 erb 中有可用的变量 @stocks,您可以使用 &lt;%= @stocks.to_json %&gt; 输出其 JSON 表示。所以在你的 view.erb 中你可以写:

<script>
if (top.location != location) {
       top.location.href = document.location.href ;
    }


    var val = <%= h.to_json %>; //rendered view will have actual array there.

    jQuery.ajax({
     data: 'val=' + total_span,
     dataType: 'script',
     type: 'post',
     url: "/portfolio/slide_change"
     });

    </script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-05
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多