Ruby on Rails 2.1 - 会话和 Cookie



会话

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

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 服务器。

rails-quick-guide.htm
广告