Ruby on Rails - 会话和 Cookie



会话

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

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                           # turn session management off
session :off, :only => :action      # only for this :action
session :off, :except => :action    # except for this action

session :only => :foo,              # only for :foo when doing HTTPS
        :session_secure => true 

session :off, :only=>:foo, # off for foo,if uses as Web Service
        :if => Proc.new { |req| req.parameters[:ws] }

请查看链接了解更多详情,网址:会话管理

Cookie

以下是设置 cookie 的语法 −

# Set a simple session cookie
cookies[:user_name] = "david" 

# Set a cookie that expires in 1 hour
cookies[:login] = { :value => "XJ12", :expires => Time.now + 3600}

以下是读取 cookie 的语法 −

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

以下是删除 cookie 的语法 −

cookies.delete :user_name

为设置 cookie 准备的所有选项符号为 −

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

  • 路径 − 该 Cookie 应用到的路径。默认为应用程序的根目录。

  • − 该 Cookie 应用到的域。

  • 过期 − 该 Cookie 过期的时间,作为 +Time+ 对象。

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

请查看有关 Cookie 管理 的链接,了解更多详情。

rails-references-guide.htm
广告