小编Joã*_*ira的帖子

覆盖Sinatra默认的NotFound错误页面

有没有办法覆盖sinatra默认的NotFound错误页面("Sinatra不知道这个小曲")?我希望sinatra只显示一个普通的字符串作为"找不到方法",当它找不到合适的路由时,但是当我从路由中引发404错误时,我希望它显示传入的错误消息.

像这样实现not_found块:

 not_found do
    'Method not found.' 
  end
Run Code Online (Sandbox Code Playgroud)

工作,但它不是一个有效的选项,因为我希望能够从这样的路线抛出我自己的NotFound错误消息:

 get '/' do
    begin
      # some processing that can raise an exception if resource not found
    rescue => e
      error 404, e.message.to_json
    end
  end
Run Code Online (Sandbox Code Playgroud)

但正如预期的那样,not_found块会覆盖我的错误消息.

ruby sinatra

10
推荐指数
3
解决办法
5548
查看次数

如何默默地启动Sinatra + Thin?

我有一个Sinatra :: Base webservice,我想从命令行Ruby程序开始,所以我有这个:

# command line program file
require 'mymodule/server'

puts "Running on 0.0.0.0:4567, debugging to STDOUT..."

MyModule::Server.run! bind: '0.0.0.0', port: 4567, environment: :production
Run Code Online (Sandbox Code Playgroud)

这按预期工作但它抛出:

$ myscript
Running on 0.0.0.0:4567, debugging to STDOUT...

== Sinatra/1.3.1 has taken the stage on 4567 for production with backup from Thin
>> Thin web server (v1.3.1 codename Triple Espresso)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:4567, CTRL+C to stop

127.0.0.1 - - [23/Dec/2011 18:44:55] "POST /images HTTP/1.1" 200 360 0.0133 …
Run Code Online (Sandbox Code Playgroud)

ruby thin sinatra

7
推荐指数
1
解决办法
2259
查看次数

标签 统计

ruby ×2

sinatra ×2

thin ×1