Ruby on Rails - Session 会话和 Cookies

会话

要跨多个请求保存数据,您可以使用会话或闪存哈希。闪存存储一个值(通常是文本)直到下一个请求,而会话在整个会话期间存储数据。

session[:user] = @user
flash[:message] = "Data was saved successfully"

<%= link_to "login", :action => 'login' unless session[:user] %>
<% if flash[:message] %>
<div><%= h flash[:message] %></div>
<% end %>

可以关闭会话管理 −

session :off 						# 关闭会话管理
session :off, :only => :action 	# 仅适用于此 :action
session :off, :except => :action # 仅适用于此操作

session :only => :foo, 			# 仅适用于执行 HTTPS 时的 :foo
        :session_secure => true 

session :off, :only=>:foo, 		# 如果用作 Web 服务,则关闭 foo
        :if => Proc.new { |req| req.parameters[:ws] }

查看链接以了解有关会话管理的更多详细信息>

Cookie

以下是设置 cookies 的语法 −

# 设置一个简单的会话 cookie
cookies[:user_name] = "david"

# 设置一个在 1 小时内过期的 cookie
cookies[:login] = { :value => "XJ12", :expires => Time.now + 3600}

以下是读取 Cookie 的语法−

cookies[:user_name]  # => "david"
cookies.size         # => 2 

以下是删除 cookies 的语法 −

cookies.delete :user_name

设置 cookies 的所有选项符号都是 −

  • value − cookie 的值或值列表(作为数组)。

  • path − 此 cookie 适用的路径。默认为应用程序的根目录。

  • domain − 此 cookie 适用的域。

  • expires − 此 cookie 过期的时间,作为 +Time+ 对象。

  • secure −此 cookie 是否为安全 cookie(默认为 false)。安全 cookie 仅传输到 HTTPS 服务器。

查看 Cookies 管理 上的链接,了解更多详细信息。

rails-references-guide.html