【发布时间】:2012-12-17 09:25:13
【问题描述】:
我在某些模型中有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 属于第二个。所以我需要在控制器中写这样的东西:
errors = @auction.errors.to_hash
errors['values'] = Hash[@auction.values.reject{ |v| v.valid? }.collect{ |v| [v.attribute_id, v.errors.to_hash]}]
了解错误属于哪个模型。
是否存在更干净的方法来做到这一点?
【问题讨论】:
标签: ruby-on-rails activerecord