2015-04-22 76 views
2

我已經創建Ruby Session Variable我需要Javascript如何訪問紅寶石會話變量在Javascript

訪問此變量讓我們這種情況下

session[:note] = 'Some Notes'這是在Ruby on Rails

做現在,我想訪問這個就像

var session_val =用於訪問上面會話變量的js代碼。

它不是js.erb我知道,如果它是js.erb我們可以訪問像

var sesion_val = "<%= session[:note] %>" 

TIA

回答

3

您可以使用從那裏你可以訪問變量HTML5 data方法。

假設,您的JS功能正在通過按鈕進行呼叫。 因此,你可以定義按鈕:

<button class="btn" data-session="<%= session[:note]%>" onclick="seesionCheck()">Hello</button> 

現在,在你的JS功能,您可以訪問該變量爲:

$(".btn").data('session'); 
+0

要求服務器如果您只使用這一個變量則HTML DOM大小將不是增加像你想象的。 – Emu

+0

是的謝謝,它似乎工作(y) – Veeru

+0

@維魯,所以它應該是被接受的答案,對吧? – Emu

1

會話在服務器端。你的JS在客戶端。沒有辦法直接從JS讀取會話。有兩種方法可以解決它:

  • 當您渲染視圖時對這些值進行種子處理。正如你所說,你可以把它放在你的ERb中。但是,更好的方法是使用JSON:

    var session_val = <%= session[:note].to_json %> 
    

    這樣可以避免轉義(或缺少轉義)時可能出現的問題。

  • 通過AJAX