W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
把你的應(yīng)用定義在頂層,對于微型應(yīng)用這會工作得很好,但是在構(gòu)建可復(fù)用的組件時候會帶來客觀的不利,比如構(gòu)建 Rack 中間件,Rails metal,帶有服務(wù)器組件的簡單程序庫,或者甚至是 Sinatra 擴展。頂層的 DSL 污染了 Object 命名空間,并假定了一個微型應(yīng)用風(fēng)格的配置 (例如,單一的應(yīng)用文件, ./public 和 ./views 目錄,日志,異常細節(jié)頁面,等等)。這時應(yīng)該讓 Sinatra::Base 走到臺前了:
require 'sinatra/base'
class MyApp < Sinatra::Base
set :sessions, true
set :foo, 'bar'
get '/' do
'Hello world!'
end
end
Sinatra::Base 子類可用的方法實際上就是通過頂層 DSL 可用的方法。大部分頂層應(yīng)用可以通過兩個改變轉(zhuǎn)換成 Sinatra::Base 組件:
你的文件應(yīng)當(dāng)引入 sinatra/base 而不是 sinatra; 否則,所有的 Sinatra 的 DSL 方法將會被引進到 主命名空間。
把你的應(yīng)用的路由,錯誤處理,過濾器和選項放在 一個 Sinatra::Base 的子類中。
+Sinatra::Base+ 是一張白紙。大部分的選項默認是禁用的,包含內(nèi)置的服務(wù)器。參見 選項和配置 查看可用選項的具體細節(jié)和他們的行為。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: