gpt4 book ai didi

ruby-on-rails - 如果出现验证错误,如何自定义 respond_with 呈现的 JSON?

转载 作者:行者123 更新时间:2023-12-04 05:46:18 26 4
gpt4 key购买 nike

在 Controller 中,我想替换 if..render..else..renderrespond_with :

# Current implementation (unwanted)
def create
@product = Product.create(product_params)
if @product.errors.empty?
render json: @product
else
render json: { message: @product.errors.full_messages.to_sentence }
end
end

# Desired implementation (wanted!)
def create
@product = Product.create(product_params)
respond_with(@product)
end
respond_with 的问题也就是说,在出现验证错误的情况下,JSON 会以不符合客户端应用程序期望的特定方式呈现:
# What the client application expects:
{
"message": "Price must be greater than 0 and name can't be blank"
}

# What respond_with delivers (unwanted):
{
"errors": {
"price": [
"must be greater than 0"
],
"name": [
"can't be blank"
]
}
}

产品、价格和名称是示例。我希望在整个应用程序中都有这种行为。

我正在使用 responders gem我读过可以自定义响应者和 serializers .但是这些碎片是如何组合在一起的呢?

如何自定义 respond_with 的 JSON在验证错误的情况下呈现?

最佳答案

自定义用户警报的其他几种方法

你可以把它放在一行:
render json: { message: "Price must be greater than 0" }
或者:您可以只引用您的 [语言环境文件] 并在那里输入自定义消息。 1 :
t(:message)
希望这可以帮助 :)

关于ruby-on-rails - 如果出现验证错误,如何自定义 respond_with 呈现的 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44503701/

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