Rails异常处理失败

时间:2014-03-08 14:14:06

标签: ruby-on-rails ruby ruby-on-rails-3 exception controller

我已经设置了一个控制器来处理异常(404,522和500)。

所有内容似乎都正确连接,当我点击不存在的页面时,在我的日志结尾处,我看到以下内容:

  

由ErrorsController#error_404处理为HTML呈现   errors / layouts / single_column_layout中的errors / error_404.html.erb   (0.2ms)在4ms内完成500内部服务器错误

但是我在浏览器中收到一般错误消息:

enter image description here 我的控制器看起来像这样:

class ErrorsController < ApplicationController

  respond_to :html

  layout "shared/layouts/single_column_layout"

  def error_404
    @bad_url = params[:id]
    render status: :not_found
  end

  def error_422
    render status: :unprocessable_entity
  end

  def error_500
    render status: :internal_server_error
  end

end

在我的development.rb

config.consider_all_requests_local       = false

在我的application.rb

config.exceptions_app = self.routes

我的routes.rb包含:

  match "/404" => "errors#error_404"
  match "/422" => "errors#error_422"
  match "/500" => "errors#error_500"

我还从public目录中删除了所有静态错误页面。

404的完整堆栈跟踪是:

  

在2014-03-08 14:21:24 +0000

开始获取127.0.0.1的“/ what”      

ActionController :: RoutingError(没有路由匹配[GET]“/ downl”):
  actionpack(3.2.12)   lib / action_dispatch / middleware / debug_exceptions.rb:21:in call'
actionpack (3.2.12) lib/action_dispatch/middleware/show_exceptions.rb:56:in
call'
  railties(3.2.12)lib / rails / rack / logger.rb:32:in call_app' railties (3.2.12) lib/rails/rack/logger.rb:16:in块中的电话'
  activesupport(3.2.12)lib / active_support / tagged_logging.rb:22:in   tagged' railties (3.2.12) lib/rails/rack/logger.rb:16:in称之为'
  quiet_assets(1.0.2)lib / quiet_assets.rb:18:in   call_with_quiet_assets' actionpack (3.2.12) lib/action_dispatch/middleware/request_id.rb:22:in称'机架'   (1.4.5)lib / rack / methodoverride.rb:21:在call' rack (1.4.5) lib/rack/runtime.rb:17:in调用'activesupport(3.2.12)   lib / active_support / cache / strategy / local_cache.rb:72:在call' rack (1.4.5) lib/rack/lock.rb:15:in调用'rack-livereload(0.3.15)   lib / rack / livereload.rb:23:in _call' rack-livereload (0.3.15) lib/rack/livereload.rb:14:in call'actionpack(3.2.12)   lib / action_dispatch / middleware / static.rb:62:在call' xipio (1.0.0) lib/xipio/middleware.rb:10:in调用'railties(3.2.12)   lib / rails / engine.rb:479:在call' railties (3.2.12) lib/rails/application.rb:223:in调用'railties(3.2.12)   lib / rails / railtie / configurable.rb:30:in method_missing'
/Users/me/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:145:in
handle'/ Users / me / Library / Application   支持/战俘/版本/ 0.4.1 / node_modules / NACK / lib中/ NACK / server.rb:99:在   在{/ Users / me / Library / Application中rescue in block (2 levels) in start' /Users/me/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:96:in 阻止(2个级别)   支持/战俘/版本/ 0.4.1 / node_modules / NACK / lib中/ NACK / server.rb:86:在   开始'/ Users / me / Library / Application中的each' /Users/me/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:86:in 阻止   支撑/的Pow /版本/ 0.4.1 / node_modules / NACK / LIB / NACK / server.rb:66:在   loop' /Users/me/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:66:in 启动'/ Users / me / Library / Application   支撑/的Pow /版本/ 0.4.1 / node_modules / NACK / LIB / NACK / server.rb:13:在   run' /Users/me/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/bin/nack_worker:4:in

     

由ErrorsController#error_404处理为HTML呈现   errors / layouts / single_column_layout中的errors / error_404.html.erb   (0.3ms)在5ms内完成500内部服务器错误

0 个答案:

没有答案