Вы можете проверить связь модели с
validates_associated :shirt
Таким образом, когда вы звоните person.save
, это вызовет проверки shirt
.
И да, вы можетеполучите доступ к ошибке ассоциации с помощью person.shirt.errors
, но обязательно сделайте это после запуска проверок.Например:
person = Person.new
person.errors # => will be empty
Это потому, что проверки еще не были выполнены.Поэтому вам нужно вызвать либо save
или valid?
, либо любой другой метод, запускающий проверки.
person = Person.new
person.valid?
person.errors # => will have errors in person
И то же самое для ассоциаций:
person.shirt.valid?
person.shirt.errors
, но так как выДля проверки связей с validates_associated
с помощью person.valid?
будет достаточно вызвать проверки рубашки.