2015-04-14 35 views
1

我無法真正理解它。比方說,我有一個控制器如下:Padrino/Sinatra:如何修改「after」過濾器中的響應?

get :test do 
    status 201 
    body "test" 
end 

after do 
    status 404 
    body "not found" 
end 

現在,來訪/測試產生的響應與404狀態和身體的「測試」。我如何正確地做到這一點?

而且,我發現我可以省略

get :test do 
    status 201 
    "test" 
end 

和響應保持不變,但調用response.body後返回空數組,而不是實際的內容。爲什麼這很混亂,是Padrino和Sinatra之間的某種不一致?我在這裏想念什麼,任何人都在意解釋?

+0

你想達到什麼目的? –

+1

如果你在實際測試範圍內(如水豚)做這個 - 那麼這是一個相當知名的問題。 response.body的更新速度不夠快,無法在測試過程中提供有意義的數據 – dax

回答

0

我認爲你想重寫默認Sinatra找不到消息? 你可以這樣做:

get :test do 
    "test" 
end 

error Sinatra::NotFound do 
    content_type 'text/plain' 
    [404, 'Not Found'] 
end