##概要
Railsで外部キーを持ったモデルを削除する際、単純にルーティングとコントローラーとビューファイルを記述しただけでは実装できず苦しんだのでアウトプットしておきます。
##実装内容
外部キーとして、商品購入に関してデータを結びつけているitem_purchaseを持ったitemというモデルを削除するとします。
このitem_purchaseは、購入した人であるuser_idと、購入された商品であるitem_idを持っています。
ここで、単純にitemを削除すると、item_purchaseにはitem_idだけなくなってしまったレコードが存在してしまいます。
そこで、itemを削除したときにその関連したitem_purchaseのレコードそのものを削除できるように記述していきます。
##実装
まずはモデルのアソシエーションに追加記述しましょう。
models/item.rb
has_one :item_purchase, foreign_key: :item_id, dependent: :destroy
models/item_purchase.rb
belongs_to :item, optional: true
ここでは紹介しませんが、userも紐づいているはずなので、そちらも忘れずに記述します。
あとは通常通りにコントローラーにdestroyメソッドを定義してあげたりすればOKです。