gpt4 book ai didi

ruby-on-rails - 在JSON中呈现两个不同的模型错误

转载 作者:行者123 更新时间:2023-12-03 08:27:20 24 4
gpt4 key购买 nike

我有一个远程表单,该表单本质上是同时提交两种表单。一个用于Address,另一个用于User,现在我想做的就是在JSON中呈现错误。

我可以这样单独返回错误:

if current_user.errors.any? || !@address.save
respond_to do |format|
format.json { render json: @address.errors, status: :unprocessable_entity }
end
end

现在有些情况下,它们会在用户模型和地址上触发错误。如何呈现 @address.errorscurrent_user.errors这两个错误。我试图将它们合并为散列,但由于它们属于ActiveModel::Errors,因此无法实现。如果检查错误,通常会返回以下错误:
#<ActiveModel::Errors:0x007fbe094edda0 @base=#<Address id: nil, street_address: "Lorem ipsum", city: nil, state: nil, zip_code: "0000", country: nil, user_id: 1, created_at: nil, updated_at: nil, latitude: 10.92876, longitude: 52.23023, trashed: false>, @messages={:zip_code=>["No zip code matches this"]}, @details={:zip_code=>[{:error=>:inclusion, :value=>"0000"}]}>

所以我想弄清楚的是,是否有一种方法可以将其合并为一个,所以我可以将其返回。

最佳答案

怎么样:

if current_user.errors.any? || !@address.save
respond_to do |format|
format.json { render json: {address_errors: @address.errors, current_user_errors: current_user.errors}, status: :unprocessable_entity }
end
end

现在,您将获得一个带有2个条目的哈希值的json响应:一个用于address_errors,一个用于current_user_errors。

关于ruby-on-rails - 在JSON中呈现两个不同的模型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37703984/

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