簡體   English   中英

將Ruby變量傳遞給javascript以便發布

[英]Passing Ruby variable to javascript for post

我的視圖中有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)我應該如何以及在哪里聲明javascript中的新變量以從此文件中的ruby代碼獲取h值?(將方法從ruby傳遞給javascript)

2)我想把這個變量也發布到反手'val'我怎么能這樣做? 是否有可能一次發布兩個變量或者我需要將h與'val'連接起來嗎?

你可以在ERB中使用ruby變量。 假設你的erb中有可變的@stocks,你可以使用<%= @stocks.to_json %>輸出它的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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM