Reputation: 11113
I want to create an error handler that sets the body of the response depending on the nature of the error. Something like this:
@the_error = Hash.new
get '/' do
@the_error[:message] = "error message"
400
end
error 400 do
@the_error[:message]
end
But this doesn't work as expected (the @the_error
variable is Nil
when in the get handler). What am I doing wrong, or perhaps there's a better way to do this?
Upvotes: 0
Views: 165
Reputation: 24617
Use built-in settings for this:
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
Upvotes: 1