0
私はUser
に属しているモデルNotification
を持っています。 Notification
の属性はuser_id
とnotified_by_id
であり、一意のUser
のIDを持ち、user_id
は通知を受信したユーザーを表し、notified_by_id
は通知を作成したユーザーを表します。Rails:依存する:複数のキーに基づいて破壊する
User
が削除された場合、作成した通知と受信した通知を破棄したいと考えています。私のUser
モデルでは、私は破壊の依存関係を指定します。
has_many :notifications, dependent: :destroy
しかし、これはのみ削除User
を一致user_id
を持ってNotifications
を破壊します。 User
によって作成された通知(notified_by_id
がUser.id
に等しい)は削除されません。
2つのフィールドに基づいて破棄の依存関係を指定するにはどうすればよいですか?代わりに、以下のようにbefore_destroyを使用する必要がありますか?
before_destroy :clean_notifications
def clean_notifications
Notification.where(notified_by_id: self.id).destroy_all
end
私はすぐにこの問題を解決することができますが、もっと適切な方法があると思います。どんな指導も非常に感謝しています。
で1行を追加することができます!ありがとうございました。 – Ladybro