报告Sinatra中不同内容类型的错误

时间:2012-01-06 18:53:45

标签: ruby sinatra

我有一个简单的Sinatra应用程序,包含普通和JSON API部分。我想创建一个错误块:

error do
  # ...
end

将以{:error =>格式返回JSON “some text”}以防客户端将接受标头设置为 application / json ,并保留所有其他情况的默认Sinatra行为。

1 个答案:

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