validate vs validates_associated - PullRequest
       9

validate vs validates_associated

10 голосов
/ 19 ноября 2010

Существует спецификатор validate, который можно напрямую использовать в ассоциации (см. 4.1.2.12 в этом Руководстве по рельсам , а также validates_associated (см. 3.2 в этом Руководстве по рельсам * ). Где они различаются?

1 Ответ

2 голосов
/ 19 ноября 2010

Они оба проверяют связанные модели.

Разница в том, что первым является опция для ассоциации (например, belongs_to, has_many и т. Д.). Например. Вы определяете «акт проверки» в вашей ассоциации.

В классическом примере "У автора много книг", скажем, вы включили belongs_to :author, :validate => true в модели "Книга". Каждый раз, когда вы проверяете модель Книги, связанный с ней Автор также должен быть действительным.

Другое является отдельным правилом проверок, которое вы можете добавить к другим проверкам. Таким образом, в этом случае вы включаете проверку связанного объекта вместе с другими правилами проверки.

Это может работать наоборот. У автора: has_many :books ; validates_associated :books. Когда вы проверяете объект Author, все книги также проверяются.

...