1
我有一个简单的Sinatra应用程序,包含常规和JSON API部分。我想创建的差错块:在Sinatra中报告不同内容类型的错误
error do
# ...
end
,将在格式返回JSON {:误差=>“一些文本”}的情况下,客户端发送Accept首集到应用/ JSON,并保持所有其他情况下的默认Sinatra行为。
我有一个简单的Sinatra应用程序,包含常规和JSON API部分。我想创建的差错块:在Sinatra中报告不同内容类型的错误
error do
# ...
end
,将在格式返回JSON {:误差=>“一些文本”}的情况下,客户端发送Accept首集到应用/ JSON,并保持所有其他情况下的默认Sinatra行为。
你可以读取错误块作为参数传递给一个条件中的标题,并选择输出一个辅助方法:
如
def content_to(output, type=nil)
case type
when "application/json"
#...
else
output
end...
error do
content_to("Whoops!", header["Accept"])
end
只是想我要补充,你可能想还要设置内容类型,例如'content_type:json'返回时。 – iain 2012-01-09 10:07:17
请参阅Sinatra :: RespondWith获得现成的帮手http://rubydoc.info/gems/sinatra-contrib/1.3.1/frames – iain 2012-01-12 02:19:44