2015-04-22 52 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