Существует спецификатор validate
, который может быть непосредственно использован в ассоциации (см. 4.1.2.12 в этом Rails Guide, а также validates_associated
(см. 3.2 в этом Rails Guide).
Где они отличаются друг от друга?
Проверять vs validates_associated
Ответ 1
Они оба проверяют связанную модель (ы).
Разница в том, что первая является опцией в ассоциации (например, belongs_to
, has_many
и т.д.). Например. вы определяете "акт проверки" в своей ассоциации.
В классическом примере "Автор имеет много книг", скажем, вы включили belongs_to :author, :validate => true
в модель книги. Каждый раз, когда вы проверяете модель книги, соответствующий автор также должен быть действительным.
Другое - это отдельное правило проверки, которое вы можете добавить к другим проверкам. Таким образом, в этом случае вы включаете проверку связанного объекта вместе с другими правилами проверки.
Это может работать наоборот. В Автор: has_many :books ; validates_associated :books
. Когда вы проверяете объект Author, все книги также проверяются.