Кажется, что в рельсах вы можете определить валидации ассоциации в двух местах, либо на самой ассоциации:
class Child
belongs_to :parent, :validate => true
end
Или как обратный вызов проверки:
class Child
belongs_to :parent
validates_associated :parent
end
В чем разница между этими двумя методами?
Тестирование разницы
Я думал, что, возможно, первое создает противодавление и гарантирует, что родительский объект действителен только в том случае, если ребенок действителен:
то есть. (при установке: validate = > true)
child.valid? # => false
child.parent.valid? # => also evaluates to false because of the :validate => true condition
# do whatever it takes to make the child valid again
#...
child.valid? # => true
child.parent.valid? # => true
Однако я тестировал его, и этого не происходит. Итак, какая разница (если есть) между двумя методами?