2016-09-09 2 views
0

Wie kann ich hinzufügen, dass abstent:: in user.rb zerstören, um die Nachrichten zu löschen, die zwischen Benutzern mithilfe von Mailbox erstellt werden?Wie kann ich hinzufügen:: zerstören, wenn ich Mailboxer verwende

Ich habe diese Tabellen und Spalten.

| mailbox_conversations |

| ID | Thema | erstellt_at | aktualisiert_at |

| mailboxer_notifications |

| ID | Typ | Körper | Thema | sender_id | sender_type | Konversations-ID | Entwurf | Benachrichtigungscode | notified_object_id | notified_object_type | Anhang | aktualisiert_at | erstellt_at | global | läuft ab | Absendername |

| mailboxer_receipts |

| ID | receiver_id | Empfängertyp | Benachrichtigungs-ID | is_read | verwüstet | gelöscht | Postfach_Typ | erstellt_at | aktualisiert_at |

Ich habe

(user.rb)

has_many :messages, :class_name => "Mailboxer::Message", :as => :sender 
     has_many :receipts, -> { order(:created_at => :desc, :id => :desc) }, :class_name => "Mailboxer::Receipt", dependent: :destroy, as: :receiver 

has_many :notifications, -> { where(notified_object_type: 'Assignment') }, 
     foreign_key: "notified_object_id", dependent: :destroy, 
     class_name: "Mailboxer::Notification" 

Aber es hat nicht funktioniert.

Antwort

0

Sie müssen dependent: :destroy bei der Associates_to-Teil der Assoziation verwenden.

So ein Benutzer has_many :notifications und im Benachrichtigungs Modell sollte es belongs_to :user, dependent: :destroy

sagen, weil es jetzt sagt, wenn jemand eine Benachrichtigung löscht der Benutzer aswell zerstört werden.

Verwandte Themen