Rails:删除用户而不会丢失关联(或让用户离开的其他方法)

时间:2011-02-21 17:32:08

标签: ruby-on-rails cascading-deletes user-management

我有一个Rails应用程序,允许用户创建各种“判断”,一切都有点交织,我们有几个连接到User类的类。

当我让用户“销毁”他们的帐户时,显然他们拥有的关联会给我一个nil对象。因此,例如,当我遍历所有判断时,如果该特定用户删除(销毁)了他们的帐户,我就无法得到创建判断的用户。

  • Rails中针对此类案例的最佳做法是什么?
  • 将用户标记为无效,但仍保留其帐户是否可以?
  • 我可以删除用户帐户并替换其他类中的相关信息吗?

1 个答案:

答案 0 :(得分:8)

这完全取决于您和最适合您的应用程序。这并不是Rails标准与Web标准的关系。如果您删除了自己的帐户并且您是应用程序的用户,您会发生什么?以下是几个选项:

  • 将帐户标记为非活动状态,并保留用户名和最小配置文件。
  • 删除用户的帐户,但将所有相关对象与“匿名”或“已删除用户”帐户相关联。
  • 删除所有相关信息。

请注意,您选择继续操作的方式也取决于您的用户在使用本网站时必须同意的服务条款。如果您有权保留其内容,则可以保留相关信息,但删除其姓名和私人信息可能是个好主意。最好向律师咨询实际可以保留的数据量。如果你对这些数据有自由的统治权,我会说你的用户会感到高兴。