Reputation: 408
How do I set up a session value that expires 1.hours
from now in Rails?
Cookies have an option like:
cookies[:thing] = {:value => {:normal => "session stuff"}, :expires => 2.hours.from_now}
Are there any options for sessions too?
Upvotes: 1
Views: 6299
Reputation: 18568
please try this
session[:expires_at] = 60.minutes.from_now
you can also try
session[:expires_at] = Time.now + 60.minutes
session[:expires_at] = Time.now + 1.hour
session[:expires_at] = Time.now + 3600 #1 hour in seconds
All these are working in my application. Please do not forget to consider time zone.
Upvotes: 2
Reputation: 6415
You can add this to your application controller:
before_filter :session_expires, :except => [:login, :logout]
before_filter :update_session_time, :except => [:login, :logout]
def session_expires
@time_left = (session[:expires_at] - Time.now).to_i
unless @time_left > 0
reset_session
flash[:error] = 'Lorem Ipsum.'
redirect_to :controller => 'foo', :action => 'bar'
end
end
def update_session_time
session[:expires_at] = 60.minutes.from_now
end
Upvotes: 4