Rails确定导致404的原因?

时间:2014-04-18 17:48:09

标签: ruby-on-rails

我在生产日志中看到了这一点:

INFO -- : Started GET "/404" for 178.167.132.245 at 2014-04-18 17:43:55 +0000
INFO -- : Processing by ErrorsController#not_found as */*
INFO -- :   Rendered errors/not_found.html within layouts/application (0.1ms)
INFO -- : Completed 404 Not Found in 1ms (Views: 0.9ms | ActiveRecord: 0.0ms)

我看到他们很多。我想知道什么URL导致了404,这意味着,找不到的初始URL是什么,导致页面被重新路由到404页面。这可能吗?

1 个答案:

答案 0 :(得分:0)

最简单的方法是将一些日志记录工具添加到ErrorsController#not_found,它会记录request.fullpath,如下所示:

class Errors Controller < ApplicationController
  def not_found
    logger.info "Not Found: '#{request.fullpath}'.\n#{exception.class} error was raised for path .\n#{exception.message}"
    render status: 404
  end
end

这将在您的日志中为您提供路径和触发异常(即,ActiveRecord::RecordNotFound,或者可能是ActionController::RoutingError)。

this gist中也有一些非常好的讨论。