我正在尝试从
ActionController :: RoutingError
中进行救援,但我无法让它起作用。我几乎已经尝试了所有可以在网上找到的方法,包括在Rails 4中从ActionController :: RoutingError中进行救援。我有一个错误控制器和错误页面。我已经解决了cancan中的access denied
和RecordNotFound
问题,但我无法解决RoutingError
。
对于cancan,我在application_controller.rb
中使用以下代码:
rescue_from CanCan::AccessDenied do
render template: 'errors/error_403', status: 403
end
而我在我的路由中有这个:
match "/404", to: "errors#error_404", via: :all
如果我对RoutingError
做同样的事情,它不会起作用。
我也尝试过match '*path',:to => "errors#error_404"
但是我收到错误信息。
我该如何解决?
编辑:如果我对访问被拒绝和RoutingError
做同样的事情:
rescue_from ActionController::RoutingError do
render template: 'errors/error_404', status: 404
end
它不会工作。
ActionController :: RoutingError
将引发。我尝试遵循您上面的建议,但是当我尝试访问像localhost:3000 / xxxx
这样的网址时,仍然会出现ActionController :: RoutingError(没有匹配路由[GET]“/xxxx”)
。也许我漏掉了什么? - worrawutconfig/environment/development.rb
中添加这一行代码config.consider_all_requests_local = false
来渲染错误页面。现在一切都正常了。 - worrawut