说我有以下模型:
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或什至索引就足够了。 最佳答案
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] )
关于ruby-on-rails - 如何判断哪个关联模型未通过ActiveRecord验证?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56828308/