2014-11-21 2 views
0

В настоящее время я создаю прототип приложения, используя последнюю бета-версию Rails 4.2.Как предотвратить удаление объекта по умолчанию?

Для нескольких частей системы я должен разрешить пользователю выбирать элемент по умолчанию в списке.

До сих пор я реализовал это как поле по умолчанию на моделях и проверку уникальности, чтобы разрешить только один «по умолчанию».

Одним из моих бизнес-правил является предотвращение удаления объекта «по умолчанию».

Я мог бы использовать обратный вызов before_destroy, чтобы это сделать - и это хорошо работает, но я также использую жемчужину паранойи от https://github.com/radar/paranoia, чтобы дать мне возможность мягкого удаления. Это отменяет уничтожение моделей с помощью вызова обновления (вместо этого устанавливается поле «deleted_at»). Использование вызова before_update не дает мне ожидаемого результата, так как поле deleted_at не устанавливается достаточно рано.

Если жемчужина паранойи вызовет у меня проблемы, я рад полностью удалить это требование. Мягкое удаление полезно иметь, а не существенную функцию на этом этапе.

Есть ли у кого-нибудь предложения о том, как я могу реализовать эту логику и так же важно проверить, что она работает так, как ожидалось?

ответ

0

Вы можете реализовать это как очень простую проверку, которая предотвращает установку вашего deleted_at, если установлено поле модели default модели.

+0

Звучит полезно @meagar - не могли бы вы предоставить пример кода для этого? –

Смежные вопросы