Schienen, Löschen die Kinder Löschen, ohne Eltern mit :has_many
Habe ich
class MyContainer < ActiveRecord::Base
:has_many MyObjects, :dependent => :destroy
end
Möchte ich alle löschen die MyObjects
im container die zimmerreserviereung, ohne das löschen der MyContainer
. Mein Modell hat :dependent => :destroy
, aber ich will nicht zu haben, um zu löschen Sie und neu erstellen Sie das Objekt, weil es langsamer ist.
So etwas funktioniert nicht:
@obj = MyContainer.find_by_id(10)
@obj.my_objects.delete_all
Wie kann ich dies erreichen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
delete_all
ist einActiveRecord::Base
- Klasse-Methode.Sollten Sie verwenden
destroy_all
. So etwas wie:Mit
delete_all
richtig wäre schneller, wenn Sie nicht brauchen, um nachschlagen IhrMyContainer
ersten (oder verwenden Sie es für andere Sachen)EDIT: für rails 3
Eines oder beide dieser sollte funktionieren:
Löschen können Sie Objekte direkt, wie folgende