我有一个简单的Sinatra应用程序,包含普通和JSON API部分。我想创建一个错误块:
error do
# ...
end
将以{:error =>格式返回JSON “some text”}以防客户端将接受标头设置为 application / json ,并保留所有其他情况的默认Sinatra行为。
答案 0 :(得分:1)
您可以读取错误块中的标题作为条件的参数,以及用于选择输出的辅助方法:
e.g
def content_to( output, type=nil )
case type
when "application/json"
#...
else
output
end...
error do
content_to( "Whoops!", header["Accept"] )
end