W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
如上顯示,Sinatra 內(nèi)置了對(duì)于使用字符串和正則表達(dá)式作為路由匹配的支持。但是,它并沒(méi)有只限于此。你可以非常容易地定義你自己的匹配器:
class AllButPattern
Match = Struct.new(:captures) # :captures鍵中存放的就是捕獲的匹配文本
def initialize(except)
@except = except
@captures = Match.new([])
end
def match(str)
@captures unless @except === str
end
end
def all_but(pattern)
AllButPattern.new(pattern)
end
get all_but("/index") do
# ...
end
上面的例子可能太繁瑣了,因?yàn)樗部梢杂酶?jiǎn)單的方式表述:
get // do
pass if request.path_info == "/index"
# ...
end
或者,使用反向查找模式:
get %r{^(?!/index$)} do
# ...
end
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)系方式:
更多建議: