Rails cookies, establecer fecha de inicio y fecha de caducidad

Rails cookies,

necesito establecer la fecha de inicio y la fecha de caducidad usando cookies,

por ejemplo, una vez que el elemento agregado alcanza el tercer día, el artículo debe caducar.

Las cookies se leen y escriben a través de las cookies ActionDispatch # (ActionController # cookies en Rails 3 y siguientes). El texto en esta respuesta se cita del enlace de documentación de la API anterior.

Las cookies que se leen son las recibidas junto con la solicitud, las cookies que se escriben se enviarán con la respuesta. Leer una cookie no devuelve el objeto cookie, solo el valor que tiene.

Ejemplos para escribir:

# Sets a simple session cookie. cookies[:user_name] = "david" # Sets a cookie that expires in 1 hour. cookies[:login] = { :value => "XJ-122", :expires => 1.hour.from_now } 

Ejemplos de lectura:

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

Ejemplo para eliminar:

  cookies.delete :user_name 

Tenga en cuenta que si especifica un: dominio al establecer una cookie, también debe especificar el dominio al eliminar la cookie:

  cookies[:key] = { :value => 'a yummy cookie', :expires => 1.year.from_now, :domain => 'domain.com' } cookies.delete(:key, :domain => 'domain.com') 

Los símbolos de opción para establecer cookies son:

 * :value - The cookie's value or list of values (as an array). * :path - The path for which this cookie applies. Defaults to the root of the application. * :domain - The domain for which this cookie applies. * :expires - The time at which this cookie expires, as a Time object. * :secure - Whether this cookie is a only transmitted to HTTPS servers. Default is false. * :httponly - Whether this cookie is accessible via scripting or only HTTP. Defaults to false. 

su pregunta podría estar relacionada con esta pregunta: cómo establecer dinámicamente el tiempo de caducidad de una sesión basada en cookies en Rails

uno de los comentarios apunta a Deprecating SlideSessions :

“..Si necesita establecer un período de vencimiento para las sesiones a través de todos los controladores en su aplicación, simplemente agregue la siguiente opción a su archivo config / intializers / session_store.rb:

 :expire_after => 60.minutes 

Si necesita establecer diferentes tiempos de caducidad en diferentes controladores o acciones, use el siguiente código en acción o algunos before_filter:

 request.session_options = request.session_options.dup request.session_options[:expire_after]= 5.minutes request.session_options.freeze 

La duplicación del hash es necesaria solo porque ya está congelada en ese punto, aunque la modificación de al menos: expire_after es posible y funciona sin problemas … ”

Espero que eso ayude. 🙂

Vale la pena señalar que a partir de ahora es imposible establecer una hora de inicio para una cookie. Un conjunto de cookies siempre está activo de inmediato.