RubyでCookieを扱いたくてググってたが、いかんせんCGI::Cookieは使いづらい。
初心者には敷居が高い、というかどうやって動かすんだこれ……
で、やっぱり、Cookieをセットするには、HTTPヘッダーに、
Set-cookie: rumia=love; expires=Sun, 14-Jul-2013 20:00:00 GMT; # 値と有効期限ね
みたいに書いてやるのがよさそうだ。
Cookieを取得するときは、
ENV['HTTP_COOKIE'] # rumia=love
を参照してやればいい。
複数のCookieがセットされている場合は、
rumia=love; utagawa=kiki
みたいになっているから、
ENV['HTTP_COOKIE'].split(/;\s/)
としてやれば、key=valueの形に分割できる。
あとはそれをさらにsplit(/=/)してやれば、Cookieの値が取得できるね。そこは割愛してます。
ところで、CGI::Cookiesの何が使いづらいって、
ってとこですね。
つまり、Cookieの扱いはPerlと何ら変わらないわけだ(もしかするとそっちが正しいだけかも)
サンプルコード。Cookieを取得してcookie['key']といったハッシュにしてやる。
cookie = Hash.new ENV['HTTP_COOKIE'].split(/;\s/).each do |bo| mo = bo.split(/=/) cookie[mo[0]] = mo[1] end
こんな感じにしてやればいい。