我想创建一个错误处理程序,根据错误的性质设置响应的主体。像这样:
@the_error = Hash.new
get '/' do
@the_error[:message] = "error message"
400
end
error 400 do
@the_error[:message]
end
但这不能按预期工作(@the_error
变量在get处理程序中为Nil
。我做错了什么,或者有更好的方法来做到这一点?
答案 0 :(得分:1)
使用内置settings:
require 'sinatra'
set :the_error, Hash.new
get '/' do
options.the_error[:message] = "error message"
400
end
error 400 do
options.the_error[:message]
end