Есть две модели, которые не связаны друг с другом, назовем их model1 и model2. Для обоих моделей нет своих контроллеров, а действия c model1 происходят через accepts_nested_attributes_for еще одной модели model0. Перед удалением записи из model1, необходимо проверить наличие записей в model2 и при наличии записей в model2, запретить удаление записи из model1.
Обычные валидации при удалении не срабатывают. Если вызвать свою валидацию через before_destroy и вернуть в ней false исключение сработает и запись не удалится. Подобное выглядит как ошибка rails и в консоли мы видим ActiveRecord::RecordNotDestroyed (ActiveRecord::RecordNotDestroyed), в связи с чем, сообщение (errors message) до пользователя не доходит.
Мне нужно, при удалении записи из model1 проверить наличие записей в model2 и если они есть, вывести сообщение пользователю и не удалять запись.
смотрел
stackoverflow.com/questions/123078/how-do-i-valida... , все варианты отсюда не выводят сообщения, а вариант с def before_destroy... как я понял работает только для связанных моделей и вызывается только при dependent: :destroy. Более адекватных советов не нашел.
Надеюсь написал понятно :)
Спасибо