概要
SinatraでFlashを使う
前提
以下の環境で動作確認済み
$ ruby -v ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux] $ gem -v 2.4.5 $ bundle -v Bundler version 1.13.4
FLASHとは
直後のHTTPリクエストのみで使用するセッションデータ。
POSTでデータを登録した後にGETにリダイレクトし、登録の結果メッセージを表示するのに使ったりする
rack-flash3をインストール
gem install rack-flash3
bundlerを使う場合
Gemfileに以下を追加し、bundle install
gem "rack-flash3"
プログラム例
‘/’ 経由で’/hoge’にアクセスした場合に、’flash data’を出力。
直接’/hoge’にアクセスしたり、リダイレクト後に再読込した場合に’no data’を出力。
require 'sinatra/base' require 'rack/flash' class App < Sinatra::Base configure do use Rack::Flash end get '/' do flash[:hoge] = 'flash data' redirect '/hoge' end get '/hoge' do if flash[:hoge] flash[:hoge] else 'no data' end end end