Rails: Удалить пользователя без потери ассоциаций (или других способов позволить пользователям уйти) - PullRequest
3 голосов
/ 21 февраля 2011

У меня есть приложение Rails, которое позволяет пользователям создавать различные «суждения», все немного переплетено, у нас есть несколько классов, которые связаны с классом User.

Когда я позволяю пользователям «уничтожать» свою учетную записьочевидно, ассоциации, которые у них были, дадут мне объект nil.Так, например, когда я пересекаю все суждения, я не могу получить пользователя, который создал суждение, если этот конкретный пользователь удалил (уничтожил) свою учетную запись.

  • Каковы лучшие практики в Rails длятакие случаи?
  • Считается ли нормальным пометить пользователя как неактивного, но при этом сохранить его учетную запись?
  • Могу ли я удалить учетную запись пользователя и заменить связанную информацию в других классах?

1 Ответ

8 голосов
/ 21 февраля 2011

Это действительно ваше дело и то, что лучше всего подходит для вашего приложения.Дело не в том, что такое стандарт Rails, а что такое веб-стандарт.Что бы вы ожидали, если бы вы удалили свою учетную запись, и вы были пользователем вашего приложения?Вот несколько вариантов:

  • Пометить учетную запись как неактивную, сохранить имя пользователя и минимальный профиль.
  • Удалить учетную запись пользователя, но связать все связанные объекты с анонимным'или' удаленного пользователя '.
  • Удалите всю связанную информацию.

Помните, что то, как вы решите действовать, также может зависеть от Условий обслуживания, которые должны выполнять ваши пользователисогласен при использовании сайта.Если у вас есть право хранить их содержимое, вы можете хранить связанную информацию, но было бы неплохо удалить их имена и личную информацию.Вероятно, лучше проконсультироваться с юристом о количестве данных, которые вы можете хранить.Если у вас есть свобода управления данными, я бы сказал, что радует ваших пользователей.

...