Rails - 将cookie存储在控制器中并从Javascript,Jquery获取

Sri*_*eva 4 cookies ruby-on-rails session-cookies

是否可以在Controller中存储用户的Cookie或会话,并通过从JS或Jquery访问cookie来获取cookie?

小智 13

会话值在服务器上可用.

您可以在控制器中将它们设置为:

session[:user_name] = @user.name
Run Code Online (Sandbox Code Playgroud)

如果您想稍后在javascript中访问该值,您可能希望在视图中执行以下操作:

<%= javascript_tag do %>
  var userName = '<%= session[:user_name %>';
<% end %>
Run Code Online (Sandbox Code Playgroud)

Cookie由浏览器管理,因此访问方式不同.

要在控制器中设置一个:

cookies[:user_name] = @user.name
Run Code Online (Sandbox Code Playgroud)

(您还可以使用选项指定cookie的路径,到期时间等.)

然后可以使用jQuery访问它:

var userName = jQuery.cookie("user_name");
Run Code Online (Sandbox Code Playgroud)

注意:你也可以通过解析使用纯javascript(而不是jQuery)来访问cookiedocument.cookie,但是让jQuery为你做这件事容易得多(如果你已经在使用那个库).

  • **jquery cookie已弃用**,请改用[js-cookie](https://github.com/js-cookie/js-cookie) (5认同)