87 votes

Cookies Rails, définition de la date de début et de la date d'expiration

RRRRRRRRRRRRRRRRaaaaaaaaaaaaaaaaaaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiillllllllllllllllllllllllssssssssssssssssssssss ccccccccccccccccccccccccccccoooooooooooooooooooooooooooooooooooooooooooooooookkkkkkkkkkkkkkkkkkkkkkkkkkiiiiiiiiiiiiiiiiiiiiiiiiieeeeeeeeeeeeeeeeeeeeeeeessssssssssssssssssssssssssssss, ,,,,,,,,,,,,,,,,,,,,,,,,,,, RRRRRRRRRRaaaaaaaaaaaiiiiiiiiiiiiiiiiiiiiiiillllllllllllllRlssssssssssas i cccccccccccccclcoooooooooooosoooooRoooooooooo okkkakkkkkkkkkkkkkkkkkckiiiiiiiiiiiiiiiiioieeeeleeeeeeeeeeeeoessssssssssssssssssss,,,, ,,,,,,,,,,,a,i, cieRRRRolsaaaaoRRRRRRRRRs,iiiikaaaaaaa lllliiiiiiiicsssselllllllo R ssssssssocccac, koooioccccccciooolooooooooooekkkskooRooooooosiii ikkakkkkkkk, eeeceiiiiiiiiiisssoseeleeeee,,,o,sssssssRsssk,, ,,,,a,,,iciRReolaasosii,k llicsseo socc,kooiooekksii,eess,, RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiillllllllllllllllllllllllllllllllllllllllllllllllllllllllllllssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, RRRRRRaaaaaiiiiilllllllsssss cccccooooooooooooookkkkkkkiiiiiiieeeeeeesssss,,,,,,, ssssssssssssssssssssssssssssssssssssssssss c cccccccccoccccccccccccccccccccccccccccccccccccccccccccccccccccccoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooookooooooooooooooooooooooooooooooooooooooookkkkkkkkkkkikkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiieeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeesssss, ssssssssssssssssssssssssssssssssssssssss,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,RRRRRRaaaaaiiiiiiilllllllsssssss cccccooooooooooooookkkkkkkiiiiieeeeeeesssssss,,,,,,, cookies de rails, RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiilllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllsssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooookkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiieeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeesssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, RRRRRRRRRRRRRRRRRRRRRRRRRRRRRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiiiiiiiiiiiiiiiiiiiiiiiiiiiillllllllllllllllllllllllllllllllllllllllllllllllllllssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss ccccccccccccccccccccccccccccccccccccccccccccccccccccoooooooooooooooooooooooooooooooooooooooo

J'ai besoin de définir la date de début et la date d'expiration en utilisant un cookie,

par exemple, lorsque l'élément ajouté atteint le troisième jour, l'élément doit expirer.

203voto

Les cookies sont lus et écrits par ActionController#cookies (ActionDispatch#cookies dans Rails 3 ou supérieur).

Les cookies lus sont ceux reçus avec la demande, les cookies écrits seront envoyés avec la réponse. La lecture d'un cookie ne permet pas de récupérer l'objet cookie lui-même, mais seulement la valeur qu'il contient.

Exemples d'écriture :

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

Exemples de lecture :

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

Exemple de suppression :

  cookies.delete :user_name

Veuillez noter que si vous spécifiez un :domaine lors de la création d'un cookie, vous devez également spécifier le domaine lors de la suppression du cookie :

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

 cookies.delete(:key, :domain => 'domain.com')

Les symboles d'option pour le paramétrage des cookies sont :

* :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.

21voto

pageman Points 1522

Votre question pourrait être liée à cette question : Comment définir dynamiquement le délai d'expiration d'une session basée sur un cookie dans Rails ?

l'un des commentaires indique Dépréciation de SlideSessions :

"..Si vous avez besoin de définir une période d'expiration pour les sessions à travers tous les contrôleurs dans votre application, ajoutez simplement l'option l'option suivante à votre config/intializers/session_store.rb de votre fichier config/intializers/session_store.rb :

:expire_after => 60.minutes

Si vous devez définir différents d'expiration dans différents contrôleurs contrôleurs ou actions, utilisez le code suivant dans une action ou un avant_filtre :

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

La duplication du hachage n'est nécessaire que parce qu'il est déjà gelé à ce moment-là point, même si la modification d'au moins au moins :expire_après est possible et fonctionne parfaitement..."

J'espère que cela vous aidera. :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X