在Rails 4中分配控制器操作或中间件来处理所有异常(全局)和严格参数错误的正确方法是什么?
请记住,我不想只为一个控制器做这件事。
答案 0 :(得分:1)
嗯,显而易见的解决方案是应用程序控制器(/app/controllers/application_controller.rb
),如果您的控制器具有7个INCSEUD操作,它应该可以正常工作。
答案 1 :(得分:0)
使用exceptions_app
。
<强> application.rb中强>
class Application < Rails::Application
...
config.exceptions_app = lambda do |env|
ExceptionController.action(:render_error).call(env)
end
...
end
<强> exception_controller.rb 强>
class ExceptionController < ActionController::Base
layout 'application'
def render_error
@exception = env["action_dispatch.exception"]
@status_code = ActionDispatch::ExceptionWrapper.new(env, @exception).status_code
render :error_page, status: @status_code, layout: true
end
end