2010-11-01 31 views
1

J'ai une case à cocher à mon avis:Si la case est cochée, créez cookie qui expire en 1 an

<% = check_box_tag 'souvenir', '', false,: class => 'chkbx' %>

Maintenant, lorsque l'utilisateur clique sur le bouton 'soumettre', je dois: 1. créer un cookie 2. régler l'expiration à 1 an à partir de maintenant SI l'utilisateur a coché la case.

Comment est-ce que je peux faire ceci?

Répondre

2
if params[:remember] 
    c = {:value => 'cookie-value'} 
    if !params[:remember] 
    c.merge(:expires => 1.years.from_now()) 
    end 
    cookies[:cookie_name] = c 
end 
+0

Si le rappel n'est pas coché, j'ai encore besoin de créer le cookie sans les expires. Y a-t-il un moyen propre de le faire sans répéter la même ligne de code mais sans le symbole: expire? – Blankman

+0

Vous ne devriez pas faire un cookie n'expire jamais. Je suis assez sûr de laisser tomber les: expire sera par défaut à 2 semaines. Une recherche rapide sur google n'a pas donné grand chose. J'ai modifié le code pour faire ce que vous avez décrit, mais vérifiez si le cookie par défaut est de 2 semaines. Si vous voulez l'effet de ne jamais expirer, il suffit de définir le délai d'expiration à 10 ans, 100 ans, quelque chose d'absurde. – shoebox639

Questions connexes