私がこれらの4つのモデルを持っていると仮定します。
次に、各モデルに呼び出されるgemを使用して、acts_as_paranoid
論理的な削除を実装しています。
- ユーザー
- コミュニティ
- トピック
- コメント
ユーザーはいつでも辞任できます。これは、ユーザーのレコードが削除されることを意味します。
一般的な状況では、ユーザーが作成したコミュニティ、トピック、コメントも一緒に削除する必要があります。(w /従属=>破棄)
しかし、私はそれを望んでいません。他のユーザーが自分のブックマークリストにコミュニティを追加した可能性があるためです。したがって、このため、削除しないでください。
ユーザーレコードが削除されたが、それらのコミュニティ、トピック、コメントがすべて残っていると仮定すると、コミュニティページまたはユーザーが作成した場所でnilエラーが返され始めます。
私は今このようにコーディングしています。
ユーザーレコードがなくなったが、すべてのレコードが残っているため、どこでもゼロになります。
この種の問題をどのように処理できますか?
views / communitys / show.html.erb
<%= @community.user.username %>
私がやりたいのは、表示されたユーザー名をこの固定単語「NotFoundUser」に置き換えることです。次に、コミュニティの所有権(user_id)を他のユーザーに変更して、代わりにこのコミュニティを管理できるようにします。
私の協会はこんな感じです。
models / user.rb
has_many :communities
has_many :topics
has_many :comments
models / community.rb
belongs_to :user
has_many :topics
has_many :comments
モデル/topic.rb
belongs_to :user
belongs_to :community
has_many :comments
models / comment.rb
belongs_to :user
belongs_to :community
belongs_to :topic