2017-08-09 83 views
1

我正在使用Rails的应用程序中工作。我需要能够为每个称为语言的用户设置一个变量。目前,我通过在控制器中设置的ruby会话变量来完成此操作,但是当用户关闭浏览器时,我将失去它们的语言变量,并且每次登录时都必须重新设置它。我需要以某种方式将这些数据附加到用户。我必须在前端使用Ruby和Javascript,并且我只能通过Ruby发送数据请求。如何通过Ajax和Javascript加载一个ruby变量?

<script type="text/javascript"> 
 
var language=getCookie(“language”); 
 
    //***HELP use ajax to set user language preference in ruby*** 
 

 
function getCookie(name) { 
 
    var value = "; " + document.cookie; 
 
    var parts = value.split("; " + name + "="); 
 
    if (parts.length == 2) return parts.pop().split(";").shift(); 
 
} 
 
</script> 
 
    
 
<% use language variable here to request data in ruby %>

+0

设置Cookie时,会在Cookie上设置到期日期? – epascarello

+0

我的Cookie有效期过长。我没有显示该代码。我的问题是如何从用户的浏览器中获取数据到ruby后端,并仍然与用户绑定。我需要用ajax和javascript设置一个ruby变量。 –

回答

0

在Ruby中,默认情况下,只有饼干最后,直到会话被关闭。你可以通过给他们一个expiration date来覆盖它。这意味着即使用户关闭浏览器,他们也会持续,直到他们到达该过期日期,只需将其设置得任意高,然后您就可以轻松前往。