@endenwer

Как в RoR реализовать валидацию, что модель Parrent имеет как минимум один Children, а валидации модели Children требуют Parrent?

Есть модели Parrent1 и Parrent2 c has_many :children, у которых должен быть как минимум один Children. И есть модель Children с belongs_to :parrentable, polymorphic: true. При этом для валидации Children требуются некоторые поля родительской модели. Как это можно реализовать в RoR?
Я могу создать все это в одной транзакции: Сначала сохраняется родительская модель(у нее нет валидации на Children), потом создаются Children(они имеют доступ к родителю, т.к. он уже сохранен), дальше проверяется, что родитель имеет как минимум одного ребенка. Если проверка не прошла, то вызывается RollBack и ничего не сохраняется. Все работает, но хотелось бы узнать есть ли для этого в RoR встроенный функционал. accepts_nested_attributes_for не работает, т.к. при создании Children, родитель еще не создан, а inverse_of не работает с polymorphic
  • Вопрос задан
  • 222 просмотра
Пригласить эксперта
Ответы на вопрос 1
nbekseitov
@nbekseitov
Ruby developer
Может ребенок должен иметь хоть одного родителя?

Для связей без polymorphic можно использовать данную статью:
Using belongs_to to handle multiple Parent Records...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы