Попытка создать специальную модель активной записи, которая работает как уникальный реестр WORM. - PullRequest
1 голос
/ 04 ноября 2010

Я пытаюсь создать модель довольно особенного вида.

Я просто называю это письмами. Содержит поля, такие как:
адрес
send_count
заблокирован

Это реестр адресов электронной почты. Каждая запись в других моделях, содержащих адрес электронной почты, должна иметь ссылку на запись в этой модели. Таким образом я могу заблокировать / заблокировать и адрес электронной почты глобально в моем приложении и пометить его другими способами.

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

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

Возможно, они редактируют форму своего аккаунта и могут изменить свой адрес электронной почты. Телефон должен заметить это и "find_or_create" экземпляр себя вместо обновления адреса. Обновление заблокированного свойства с другой стороны должно быть разрешено.

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

Я пробовал некоторые варианты использования проверок и обратных вызовов, но я могу "заменить себя" другой существующей записью. Простая установка всех атрибутов (включая id) для атрибутов существующей записи на самом деле не заставляет вещи работать полностью.

Любые идеи будут полезны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...