【问题标题】:Ruby and Sinatra红宝石和辛纳屈
【发布时间】:2015-05-21 21:24:00
【问题描述】:

我今天开始编写一个简单的 Sinatra 应用程序,我试图理解错误报告,但由于某种原因我无法让它正常工作。

我知道,http://railsapi.com/doc/sinatra-v1.0/,它谈到了使用错误报告/处理,但是当我运行他们的示例时,我无法让它工作。

require 'sinatra'

error 400..510 do
  'Boom'
end

get '/say/*' do
  params[:splat]
end

当我在计算机上运行应用程序时,我收到 404 错误代码,但 'Boom' 文本没有显示在浏览器中,只是浏览器 404 页面。我确定我做错了什么,但就是想不通。

【问题讨论】:

    标签: ruby sinatra


    【解决方案1】:

    我会赌你的浏览器。在我的 MacBook Pro 上:

    Chrome“有帮助”显示“糟糕!此链接似乎已损坏。”页面。

    Safari 显示预期的 Boom 文本。

    Firefox 显示预期的 Boom 文本。

    【讨论】:

    • 谢谢!奇怪的是 Chrome 会这样做......哦,好吧,回到使用 FF 进行 Sinatra 测试;)
    【解决方案2】:

    似乎 Sinatra 将 Sinatra::NotFound 异常 (404) 抛出给特定的处理程序。只需将代码修改如下,

    require 'sinatra'
    
    not_found do
      'Boom in NOT_FOUND.'
    end
    
    error 400..510 do
      'Boom'
    end
    
    get '/say/*' do
      params[:splat]
    end
    

    它在 Mac OSX 上的 Chrome 和 Firefox 中运行良好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-20
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-09
      • 1970-01-01
      相关资源
      最近更新 更多