【发布时间】:2017-05-25 11:50:19
【问题描述】:
我目前正在为 500 和 404 错误生成动态错误页面。我想将此扩展到 422 错误。这是我们目前所拥有的。
config/application.rb
config.exceptions_app = self.routes
控制器/errors_controller.rb
class ErrorsController < ApplicationController
def not_found
render status: 404
end
def internal_server_error
render status: 500
end
def unacceptable
render status: 422
end
end
routes.rb
get '/404' => 'errors#not_found'
get '/500' => 'errors#internal_server_error'
get '/422' => 'errors#unacceptable'
public/422.html 页面已被删除。错误视图页面已创建,但为简洁起见省略。当出现 404 或 500 错误时,将显示错误页面。但是,当我收到 422 错误时,我会看到以下错误页面。
我已经看到许多教程实现了相同的方法,并且它很有效。但是,我收到的是生成的 Rails 错误,而不是我创建的错误页面。出了什么问题,我该如何解决?
我看过的教程:
【问题讨论】:
-
你试过
rescue_from吗? -
我找到的教程都没有使用
rescue_from。我将发布指向我在问题中查看的教程的链接。 -
这就是我链接到它的原因。 Rails 文档比大多数教程更深入地介绍了这一点。
-
是的,我用过
rescue_from,它运行良好。我希望我不必首先使用rescue_from。没有其他教程提到这种方法,如果我可以摆脱rescue_from和它调用的方法,那么我会简化我的代码。 -
你为什么希望这样?这是工作的工具。这是表达你想做的最简单的方式。默认是失败。
标签: ruby-on-rails ruby ruby-on-rails-4 routes http-status-code-422