كيف يمكنني جعل الحذف المتتالي في علاقة one_to_many في القضبان أكتيفيريكورد؟
-
05-07-2019 - |
سؤال
ولدي نموذج في القضبان مع العلاقة one_to_many. عندما أقوم بحذف الأب، كنت ترغب في حذف جميع الأطفال. كيف أفعل ذلك؟ أريد حذف جميع الطلبات وبنودها عندما حذف مستخدم
وبلدي النماذج هي:
class User < ActiveRecord::Base
has_many :orders, :foreign_key => "id_user"
end
class Order < ActiveRecord::Base
has_many :order_items, :foreign_key => "id_pedido"
belongs_to :user, :foreign_key => "id_usuer"
end
class OrderItem < ActiveRecord::Base
belongs_to :order, :foreign_key => "id_pedido"
end
المحلول
والجواب رابطة الدفاع اليهودية هو الصحيح - تحتاج إلى إضافة :dependent => :destroy
على كل العلاقات - أي في الدرجة User
، إضافة إلى has_many :orders
، وفي الصف Order
، إضافة إلى has_many :order_items
وأنت قد ترغب أيضا في تغيير السلوك الخلية WRT المفاتيح الخارجية، وربما وضع لهم ON DELETE CASCADE
.
نصائح أخرى
ما كنت تبحث عن خيار :dependent => :destroy
على has_many
.
لا تنتمي إلى StackOverflow