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