所以我的理解是halt命令應該停止當前過濾器中的請求,但它似乎繼續。接下來是一個非常簡單的Sinatra應用程序,展示了這一點。暫停過濾器仍然繼續之前過濾器
server.rb
require 'sinatra'
before do
puts "before halt"
halt 401
puts "after halt"
end
before '/partners*' do
puts "i am in before /partners"
end
after '/partners*' do
puts "i am in after /partners"
end
get '/partners/v1/:public_id' do
puts "i am in the actual route"
end
我打電話 '得到' 在以下位置:localhost:4567/partners/v1/111
我希望能輸出什麼:
before halt
什麼實際輸出:
before halt
i am in after /partners
所以我的問題是:
1.爲什麼停止繼續在所有(用它達到after '/partners*'
)
2.爲什麼它擊中了after '/partners*'
但不是before '/partners*'
我的猜測是你不能在前面的句子中「停頓」,也許問起sinatra的開發者關於它,也許這是意想不到的... – rogerdpack