用Sinatra回归空身

时间:2013-07-12 19:14:16

标签: ruby sinatra

如何指定sinatra返回状态为200的空体?

我可以做body ""但有更明确的方法吗?

2 个答案:

答案 0 :(得分:24)

使用Rack接口

来自documentation

  

您可以返回任何有效的Rack响应,Rack body对象或HTTP状态代码的对象:

     
      
  • 包含三个元素的数组:[status(Fixnum),header(Hash),response body(响应#each)]
  •   
  • 包含两个元素的数组:[status(Fixnum),响应正文(响应#each)]
  •   
  • 响应#each并且只传递字符串到给定块的对象
  •   
  • 表示状态代码的Fixnum
  •   

返回

中的任何一个
  1. [200, {}, ['']]
  2. [200, ['']]
  3. ['']
  4. 200
  5. 应该这样做。

    使用助手

    Setting Body, Status Code and Headers中,介绍了辅助方法statusbody(以及headers):

    get '/nothing' do
      status 200
      body ''
    end
    

答案 1 :(得分:4)

同样来自docs

  

要在过滤器或路由使用中立即停止请求:

     

停止

     

您还可以在暂停时指定状态:

     

停止410

因此,在您只需要200状态的情况下,它将是:

halt 200

halt是Sinatra为您提供的最有用的方法之一,值得一读。我经常使用它在处理路径的早期返回错误消息,例如当缺少必需的参数时。