说我有以下模型:
class Race < ApplicationRecord
has_many :horses
end
class Horse < ApplicationRecord
belongs_to :race
validates :name, presence: true
end
现在,使用我的REST API,我正在创建一个Race
对象并关联多匹马。其中一匹马无法通过验证,从而增加了错误。
添加错误意味着向errors.details
和errors.messages
添加条目,其中errors
是Race
模型的字段。这两个字段都是散列,其中horses.name
为键,错误的详细信息和错误消息的值为值。
我正在寻找一种查找方法,其中哪些关联的Horse
模型未通过验证,因此我可以提供全面的错误消息。引用,id或什至索引就足够了。
答案 0 :(得分:0)
race = Race.create race_params
race.errors.messages
=> {'horses.name' => ['Can't be blank']}
race.horces[0].errors.messages
=> {'name' => ['Can't be blank']}
要获取错误记录,只需过滤race.horses
with_error = race.horses.select{|h| h.errors.messages.present?}
index = race.horses.index( with_error[0] )