2011-12-14 9 views
1

私のコメントはユーザーによって付けられています。コメントbelongs_to :userとユーザーhas_many :commentsコメントは削除されたユーザーにはありません。 「プレースホルダ」を関連付ける方法

ただし、ユーザーは削除できます。完了した場合、私は自分のコメントを削除するのではなく、そのコメントを1人のダミーユーザーに関連付けます。

は、私はいくつかの方法を考えることができます:コメントの負荷に

  • は、何の関連するユーザーが見つからない場合は、ダミーデータとメモリ内のユーザーを作成します。
  • コメントのロード時に、関連付けられたユーザーが見つからない場合は、データベースから事前定義されたユーザーを選択します。
  • コメントの削除時に、すべてのコメントをデータベース内の定義済みのユーザーに関連付けます。いくつかのポストフィルタを通して。

私の気持ちによると、ナンバーワンはきれいです。他の2つはコード内にハードワイヤードされるデータベース内のユーザーを必要とするからです。ユーザー18394がその「特別な」ユーザーになる場合は、その特別なユーザー用のすべての種類のセーフテネットが必要です。

答えて

2

代わりにソフトを削除するのはどうですか? User.activeというbooleanフィールドを持ち、User.active = tのデフォルトスコープを設定します。ユーザーが削除されると、アクティブフィールドをfalseに設定し、個人データを消去します。

+1

意味があります。追加プロは、そのユーザーの削除時にユーザーのすべてのコメントをカスケード削除することができるということです。 – berkes

関連する問題