iT邦幫忙

DAY 10
1

rails 裡內建有 flash 的訊息功能,
Sinatra 卻欠卻此好用功能。
(flash不是Adobe的Flash,只是出現訊息作用的名稱)
在 rails 裡的flash功能是指,
在這個 action 執行結果後,
有一些的訊息要帶到下一個 action,
常會用到像這樣子:

def order
  flash[:info] = "預約成功,請確認"
  redirect_to :action => 'list'
end

安裝此 gem 套件:

$ gem install sinatra-flash
Fetching: sinatra-flash-0.3.0.gem (100%)
Successfully installed sinatra-flash-0.3.0
1 gem installed

在主程式寫這兩個動作來測試:

require 'sinatra/flash'

get '/first' do
  now = Time.now
  flash[:info] = "在 first 執行的時間是 #{now}"
  redirect '/second'
end

get '/second' do
  if flash[:info]
    "從別處獲得flash訊息是:#{flash[:info]}"
  else
    "無flash"
  end
end

先存取 http://i5.tagbible.net/second
獲得此畫面:

再存取 http://i5.tagbible.net/first 馬上會導到 first 的頁面:

就把簡單的flash的機制建立,
對於要在sinatra做類似MVC或
使用者介面上訊息傳達是實用的功能。

系列文章列表


上一篇
測試 Sinatra 的 session 機制
下一篇
什麼情況可考慮用 NoSQL?
系列文
建立API為中心的輕量級網站30

尚未有邦友留言

立即登入留言