Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 红宝石和西纳特拉_Ruby_Sinatra - Fatal编程技术网

Ruby 红宝石和西纳特拉

Ruby 红宝石和西纳特拉,ruby,sinatra,Ruby,Sinatra,我今天开始编写一个简单的Sinatra应用程序,我试图理解错误报告,但由于某些原因,我无法让它正常工作 我知道,这里讲的是如何处理错误报告/处理,但当我运行他们的示例时,我无法让它工作 require 'sinatra' error 400..510 do 'Boom' end get '/say/*' do params[:splat] end 当我在我的电脑上运行应用程序时,我得到一个404错误代码,但浏览器中不会显示“Boom”文本,只显示浏览器404页面。我肯定我做错了什么

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

我知道,这里讲的是如何处理错误报告/处理,但当我运行他们的示例时,我无法让它工作

require 'sinatra'

error 400..510 do
  'Boom'
end

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

当我在我的电脑上运行应用程序时,我得到一个404错误代码,但浏览器中不会显示
“Boom”
文本,只显示浏览器404页面。我肯定我做错了什么,但就是想不出来。

我敢打赌这是你的浏览器。在我的MacBook Pro上:

Chrome“helpfully”显示一个“Oops!此链接似乎已断开。”页面

Safari显示预期的
Boom
文本


Firefox显示预期的
Boom
文本。

似乎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中运行良好。

谢谢!很奇怪Chrome会这么做。。。哦,好吧,回到使用FF进行Sinatra测试;)