Es hätte eigentlich so einfach sein können/sollen, aber leider hat da jemand wohl noch nicht ganz zu Ende gedacht, als es darum ging Löschweitergaben (dependent destroy) in Bezug auf Assoziationstabellen (join tables) zu implementieren.
In der Regel benötigt eine Assoziationstabelle, hier zum Beispiel blogcategories_blogentries, kein id Feld als Primärschlüssel, sondern es reicht ein zusammengesetzter Primärschlüssel aus bogentry_id und category_id.
In Rails gibt es ein ansich nettes Konstrukt: Löschweitergaben. Diese sorgen dafür, sofern im Model definiert, dass bei der Löschung von Objekten, beispielsweise einer Kategorie, alle abhängigen Daten, hier in der Assoziationstabelle, automatisch mit gelöscht werden. Leider funktioniert das wohl nicht einwandfrei ohne eine explizite id Spalte. Schade! Es tritt folgender Fehler auf:
ActiveRecord::StatementInvalid in CategoriesController#destroy
Mysql::Error: Unknown column 'id' in 'where clause': DELETE FROM `blogcategories_blogentries` WHERE `id` = NULL
» Den gesamten Beitrag Problem mit Assoziationstabellen und Löschweitergaben lesen