我有400状态代码的自定义错误消息:
get '/do' do
raise ParamXMissingError unless params['x']
end
error ParamXMissingError do
haml :custom_error_page
end
我希望ParamXMissingError为400,但是当我运行上面的代码并检查Firefox网络工具时,似乎Sinatra实际上返回500而不是400.如何让它显示custom_error_page.haml
并返回400?
最好是从错误块中处理状态代码和页面,这不是我在提升ParamXMissingError
时会想到的东西。例如,这将是重复的,而不是一个好的解决方案:halt 400, haml(:custom_error_page)
答案 0 :(得分:16)
卫生署。我只需要设置status 400
:
error ParamXMissingError do
status 400
haml :custom_error_page
end