軽量WebアプリケーションフレームワークSinatraでCookieを扱うには、Sinatra::Cookiesエクステンションを使う。
エクステンションを有効にするにはsinatra/cookiesをrequireする。 するとget()などのブロック内でcookiesが使用可能になる。 ブラウザへのCookieの設定は以下。redirectと組み合わせて使うこともできる。
require 'sinatra'
require 'sinatra/cookies'
get '/set_cookie' do
cookies[:something] = 'foobar'
redirect to('/')
end
ブラウザから送信されたCookieを取得するには以下のようにする。 先ほどとは逆にcookiesから値を得る。
require 'sinatra'
require 'sinatra/cookies'
get '/get_cookie' do
value = cookies[:something]
end
なおSinatra::Baseを継承して作成しているアプリケーションの場合は、helpersを使ってエクステンションを有効にしてやる必要がある。
require "sinatra/base"
require "sinatra/cookies"
class MyApp < Sinatra::Base
helpers Sinatra::Cookies
# The rest of your modular application code goes here...
end
参考:
