В настоящее время я создаю прототип приложения, используя последнюю бета-версию Rails 4.2.
Для нескольких частей системы мне нужно разрешить пользователю выбирать элемент «по умолчанию» в списке.
До сих пор я реализовал это как поле «по умолчанию» в моделях и проверку уникальности, чтобы гарантировать, что разрешено только одно «по умолчанию».
Одно из моих бизнес-правил — предотвратить удаление объекта «по умолчанию».
Я мог бы использовать обратный вызов before_destroy для этого — и это прекрасно работает — но я также использую гем paranoia из https://github.com/radar/paranoia, чтобы дать мне возможность мягкого удаления. Это отменяет уничтожение моделей с помощью вызова обновления (вместо этого устанавливается поле «deleted_at»). Использование вызова before_update не дает ожидаемого результата, так как полеDeleted_at не установлено достаточно рано.
Если драгоценный камень паранойи создаст мне проблемы, я буду рад полностью удалить это требование. Мягкое удаление — это скорее приятно, чем необходимая функция на данном этапе.
Есть ли у кого-нибудь предложения о том, как я могу реализовать эту логику и, что не менее важно, проверить, работает ли она так, как ожидалось?