У меня есть следующие отношения вложенных моделей:
- Страны (id, имя)
- Провинции (id, country_id, name)
- Города (id, провинция_ид, название)
У меня есть validates_uniqueness_of
ограничение на поля имени для каждой модели в отношении и уникальный индекс для столбцов имени в базе данных.
Я хочу поменять местами новый объект, созданный с тем же именем, что и существующая запись, в какой-то момент до ее проверки. Другими словами, если пользователь пытается добавить комбинацию города, провинции, страны, которая уже была добавлена, я хочу, чтобы модель страны возвращала ссылку на соответствующие записи существующей модели вместо сбоя проверки перед сохранением.
У меня проблемы с использованием обратных вызовов модели (after_initialize
, before_validation
и т. Д.), И я не смог заставить Country.find_or_initialize_by_name
работать с вложенными моделями ... есть предложения?