Rails cookie, session, flash
State management for Rails
- cookie
- session
- flash
cookie
Retrieve
@email = cookies[:email] # key(symbol)-value
Save
def cookie_rec
cookies[:email] = {value: params[:email], expires: 3.months.from_now, http_only: true}
render text: 'Save cookie'
end
options
- value
- expires
- domain
- path
- secure
- httponly
Permanent, Encrypted cookies
coolkies.permanent[:key] = { value: params[:key] }
coolkies.encrypted[:key] = { value: params[:key] }
Session
Retrieve
@item = session[:key]
Save
def session_rec session[:key] = params[:key] # Use symbol render text: 'save session' end
Delete
session[:key] = nil reset_session # Delete all session info
Flash
Keep until next request
notice
controller
def create
format.html { redirect_to item, notice: 'Happy Item!' }
end
View
<%= notice %>
flash
flash[:key] = value
format.html {
flash[:msg] = 'Hello world'
redirect_to @item
}
View
<p id="notice"><%= flash[:msg] %></p>
Other flash methods
flash.now[:key] # Valid only current action flash.keep(:key) # Keep next action flash.discard(:key) # Discard flash
