Wymarzyłem sobie wygasanie sesji (najprostsze CookieStore) na koniec tygodnia.
Tzn user przychodząc po weekendzie zawsze dostanie nowe cookie.
A po następnym weekendzie znowu nowe cookie.
Itd.
Coś takiego:
ActionController::Base.session = {
[...]
:expires => Time.now.end_of_week
}
…działa, ale tylko do końca pierwszego tygodnia. Lambdy wstawić do parametru :expires nie pozwalają.
Zawsze mozesz zrobic NiedzielnyCookieStore < CookieStore ktory bedzie mial wlasna implementacje metody call Poczytaj jak to wyglada w CookieStore i tam gdzie masz :expires zmien sobie na na cos z lambda ?
@PaK: słusznie prawisz faktycznie zrobiłem dziedziczenie i mam swoją wymarzoną lambdę
module Czak
class ExtendedCookieStore < ActionController::Session::CookieStore
private
# patrz actionpack-2.3.2/lib/action_controller/session/cookie_store.rb l. 123
# Should be in Rack::Utils soon
def build_cookie(key, value)
[...]
expires = value[:expires].is_a?(Proc) ? value[:expires].call : value[:expires]
expires = "; expires=" + expires.clone.gmtime.strftime("%a, %d-%b-%Y %H:%M:%S GMT") if expires
[...]
end
end
end