如何将数据传递给错误处理程序?

时间:2011-05-30 11:57:49

标签: ruby sinatra

我想创建一个错误处理程序,根据错误的性质设置响应的主体。像这样:

@the_error = Hash.new

get '/' do
 @the_error[:message] = "error message"
 400
end

error 400 do
 @the_error[:message]
end

但这不能按预期工作(@the_error变量在get处理程序中为Nil。我做错了什么,或者有更好的方法来做到这一点?

1 个答案:

答案 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