Quelqu'un sache si je peux mettre un hash dans le cookie? Quelque chose comme ça: Cookies [: test] = {: top => 5, Middle => 3, à bas => 1} p>
merci p>
3 Réponses :
Je regarderai dans la sérialisation du hachage pour la stocker. Ensuite, désérialisez-le pour le récupérer.
Lorsque vous serifiez un hachage, le résultat sera une chaîne codée. Cette chaîne peut être décodée pour récupérer l'objet d'origine. P>
Vous pouvez utiliser YAML ou JSON pour cela. Les deux sont bien pris en charge dans Ruby. P>
Un exemple YAML Exemple P>
require "json" cookies[:test] = JSON.generate {a: 1, b: "2", hello: "world"} # => '{"a":1,"b":"2","hello":"world"}' JSON.parse cookies[:test] # => {"a"=>1, "b"=>"2", "hello"=>"world"}
Je vais essayer de cette façon et voir si cela fonctionne pour moi, merci beaucoup
Cela ne fonctionne pas pour moi du tout :( Je reçois des plaintes sur le caractère ":" Caractères ":" Erreur de syntaxe, inattendue ':', attendant '}' code>) Toutes idées? J'ai essayé les deux vos suggestions YAML et JSON, mais les deux se plaignent du même problème.
Fwiw, je l'ai fait un peu différemment qui a bien fonctionné pour moi. Cookies [: My_Cookie] = {Valeur: ActiveSupport :: json.encode (my_Object), expire: quelque_time} code> Je l'ai retiré de manière similaire avec décodage. Merci de me mettre sur le bon chemin, cependant.
Il y a un certain nombre de façons que cela est possible (c'est-à-dire stocker une chaîne et Vous pouvez également convertir en JSON, puis l'analyser lors du chargement de la cookie. P> Les versions plus récentes des rails incluent automatiquement la sérialisation à l'aide de l'objet Session . p> p> eval code> cette valeur, effrayant!). C'est un moyen simple.
avec des rails 4.1 Je devais utiliser les parenthèses comme celle-ci. Sans cela, il a donné une erreur.
cookies[:test] = JSON.generate({a: 1, b: "2", hello: "world"})
Je ne pense pas que tu aies besoin des accolades bouclés.