【发布时间】:2016-06-08 13:31:53
【问题描述】:
我有一个远程表单,它本质上是在一个表单中提交两个表单。一个用于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.errors 和current_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"}]}>
所以我想弄清楚是否有办法将它合并为一个,所以我可以返回它。
【问题讨论】:
-
地址和用户有关系吗?
标签: ruby-on-rails json error-handling