SinatraでCookieを扱う
タグ: ruby / 初版公開: 2013-10-15

軽量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

参考: