lef237 / quotelist

引用箱 クオートリスト QuoteList
MIT License
6 stars 0 forks source link

ユーザーのアカウントに対する権限を変更した #76

Closed lef237 closed 1 year ago

lef237 commented 1 year ago

アカウント削除は不可にした

Coquote(共同引用)される場合に、アカウントが削除されてしまうと、既存のデータが消えてしまって困るため。

user.rbが次のようになっている。

has_many :quotes, dependent: :destroy

quote.rbが次のようになっている。

has_many :child_quotes, class_name: 'Quote', foreign_key: 'source_quote_id', inverse_of: :source_quote, dependent: :restrict_with_exception

そのためUser→Quote→ChildQuoteの順番で連結しているとき(そのユーザーの引用が共同引用されているとき)に、アカウント削除しようとすると、 ActiveRecord::DeleteRestrictionErrorが出るようになっている。

つまり、共同引用されていなければ、アカウントを削除することはできるが、それでも一度登録された有益な引用も消えてしまう恐れがある。

両者ともdependent: :destroyを使う方法もあるが、基本的に引用は消えないようにしたいため、このPull Requestのような形にすることに決めた。