gpt4 book ai didi

ruby-on-rails - Rails 多个异常处理程序,每个路由命名空间为 "exceptions_app"

转载 作者:行者123 更新时间:2023-12-05 07:42:00 26 4
gpt4 key购买 nike

是否有任何解决方案如何处理具有定义方向的每个路由命名空间的 Rails 异常 config.exceptions_app

我有版本接口(interface),例如/api/v1/api/v2。每个命名空间使用不同的 JSON/XML/HTML 响应结构。

全局定义很好,但我需要更动态的东西。

解决:

config.exceptions_app 采用闭包/lambda block 。在那个 block 中,我可以像这样创建简单的 case 语句:

config.exceptions_app = lambda do |env|
case env['REQUEST_PATH']
when %r{^(\/api\/v1)}
Api::V1::ExceptionsController.action(:show).call(env)
when %r{^(\/api\/v2)}
Api::V2::ExceptionsController.action(:show).call(env)
when %r{^(\/cms\/)}
Cms::ExceptionsController.action(:show).call(env)
end
end

最佳答案

你看过rescue_from了吗? ?它允许您捕获 Controller 内的所有异常(给定类型)并按照您的意愿呈现它们

关于ruby-on-rails - Rails 多个异常处理程序,每个路由命名空间为 "exceptions_app",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44919694/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com