軽量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
参考: