一部のモデルにhas_many
関係があり、ネストされた属性を受け入れます。この関係の検証に合格しなかった後、何らかの属性に属するすべてのエラーは、エラー ハッシュの同じキーに格納されます。
リクエストの一部:
"values_attributes":[{"value":"","attribute_id":1,"id":1,"auction_id":1},{"value":"6.6","attribute_id":3,"id":7,"auction_id":1}]
応答:
"values.value":["can't be blank","must be an integer"]
ここで、can't be blank
エラーは最初の属性に属し、must be an integer
2 番目の属性に属します。したがって、コントローラーに次のようなものを記述する必要があります。
errors = @auction.errors.to_hash
errors['values'] = Hash[@auction.values.reject{ |v| v.valid? }.collect{ |v| [v.attribute_id, v.errors.to_hash]}]
エラーがどのモデルに属しているかを理解する。
これを行うためのよりクリーンな方法はありますか?