如何在Javascript中访问Ruby会话变量

时间:2015-04-22 07:27:23

标签: javascript ruby session

我创建了Ruby Session Variable我需要在Javascript

中访问此变量

让我们采取这种情况

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

中完成的

现在我想访问它就像

var session_val = js-code,用于访问会话变量。

它不是js.erb我知道如果它是js.erb我们可以像

一样访问
var sesion_val = "<%= session[:note] %>"

TIA

2 个答案:

答案 0 :(得分:4)

您可以使用HTML5 data方法从中访问变量。

假设您的JS 功能正在通过按钮进行调用。 因此,您可以将该按钮定义为:

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

现在,在您的JS函数中,您可以访问变量:

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

答案 1 :(得分:1)

会话在服务器端。你的JS在客户端。没有办法直接从JS读取会话。有两种方法可以解决它:

  • 渲染视图时对值进行种子设定。如你所说,你可以把它放在你的ERb中。但是,更好的方法是使用JSON:

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

    这避免了逃避(或缺乏)的可能问题。

  • 通过AJAX询问服务器