gpt4 book ai didi

ruby-on-rails - 从 If JSON 中拯救

转载 作者:太空宇宙 更新时间:2023-11-03 17:50:00 25 4
gpt4 key购买 nike

当且仅当请求是 JSON 时,我想从 RecordNotFound 异常中解救出来。现在,如果我为 skip_before_action 执行此操作,我将执行以下操作:

skip_before_action :verify_authenticity_token, if: :json_request?

rescue_from 中有这方面的语法吗?像这样的东西:

rescue_from ActiveRecord::RecordNotFound, :with => :record_not_found, if: :json_request?

辅助方法:

protected
def json_request?
request.format.json?
end

最佳答案

我假设如果请求不是 JSON 那么你想提出吗?如果是这样,你应该能够做到这一点

rescue_from ActiveRecord::RecordNotFound { request.format.json? ? record_not_found : super }

rescue_from ActiveRecord::RecordNotFound, with: lambda{|e| request.format.json? ? record_not_found(e) : raise(e) }

这些将产生相同的影响,因为如果给定一个 block ,它会将它分配给 options[:with],就像提供了 with: 一样,它使用它作为 block 并忽略传递给它的任何其他 block

rescue_from 采用一个名为 *klasses 的 splat 参数和一个 block。然后它解析 *klasses 以确定传入的选项,它只关心 :with。然后它将 :with block 应用于将表示要处理的异常类名称的键。

没有将被确认的附加选项。

请注意我还没有测试过这个

关于ruby-on-rails - 从 If JSON 中拯救,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26534212/

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