Ruby on Rails - Sessão e Cookies

Sessões

Para salvar dados em várias solicitações, você pode usar a sessão ou os hashes flash. Um flash armazena um valor (normalmente texto) até a próxima solicitação, enquanto uma sessão armazena dados durante a sessão completa.

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 %>

É possível desligar o gerenciamento de sessão -

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] }

Confira o link para mais detalhes sobre Gerenciamento de Sessão

Biscoitos

A seguir está a sintaxe para definir cookies -

# 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}

A seguir está a sintaxe para leitura de cookies -

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

A seguir está a sintaxe para exclusão de cookies -

cookies.delete :user_name

Todos os símbolos de opção para definir cookies são -

  • value - O valor de cookie.s ou lista de valores (como uma matriz).

  • path- O caminho para o qual este cookie se aplica. O padrão é a raiz do aplicativo.

  • domain - O domínio ao qual este cookie se aplica.

  • expires - A hora em que este cookie expira, como um objeto + Tempo +.

  • secure- Se este cookie é um cookie seguro ou não (o padrão é falso). Cookies seguros são transmitidos apenas para servidores HTTPS.

Confira o link Gerenciamento de Cookies para mais detalhes.

rails-reference-guide.htm