gpt4 book ai didi

ruby-on-rails - `rescue_from` 格式为json时异常

转载 作者:数据小太阳 更新时间:2023-10-29 07:37:41 25 4
gpt4 key购买 nike

我在 Rails 中有一个应用程序可以同时响应 json 和 html。
我喜欢这样,当记录在保存时返回错误时,json 答案是这样的:

{
"errors" : {
"slug" : [
"can't be blank"
],
"title" : [
"can't be blank"
]
}
}

所以我将这段代码添加到我的 ApplicationController 类中。

rescue_from ActiveRecord::RecordInvalid do |exception|
render json: { errors: exception.record.errors },
status: :unprocessable_entity
end

我希望此 rescue_from 仅在格式为 json 时被调用,否则以标准方式运行(当格式为 html 时)。我怎样才能做这样的事情?

更新我找到了一个解决方案,但我认为它不是很好:

rescue_from ActiveRecord::RecordInvalid do |exception|
respond_to do |format|
format.json do
render json: { errors: exception.record.errors },
status: :unprocessable_entity
end
format.html { fail exception }
end
end

有没有更好的方法?

最佳答案

有更好的方法。

例如:

  rescue_from ActionController::InvalidAuthenticityToken do |exception|
raise unless request.xhr?
render nothing: true, status: :unprocessable_entity
end

关于ruby-on-rails - `rescue_from` 格式为json时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27939722/

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