سؤال

لقد قمت ببناء Auditlog Rail 3 بمساعدة عدد قليل من الإضافات ، التي تخزن البيانات في جدول Auditlog مع الحقول التالية لتحديد الهوية (feeded_id ، feeded_type)

لذلك في حالتي ، لدي صور ضوئية لها صور.

class PhotoAlbum < ActiveRecord::Base
has_many :photos, :dependent => :destroy

عندما أقوم بحذف صورة ضوئية (معرف = 2) يعمل هذا بشكل جيد للغاية لحذف جميع الصور المرتبطة به ، لكنه لا يحذف عناصر من Auditlog مثل هذا: (FEEDED_ID = 2 ، feeded_type = photalbum)

بالنظر إلى أن جدول Auditlog لا يحتوي على عمود "photo_album_id" ، ولا يمكنه ذلك ، هل هناك طريقة لإعداد مصير معتمد مع القضبان لحذف جميع العناصر المرتبطة بها في TEH Auditlog عند حذف صورة ضوئية؟

شكرا ، أنا أعلم أن هذا واحد أكثر تعقيدًا من معظمهم. شكرا لقراءة من خلالها!

هل كانت مفيدة؟

المحلول

أعتقد أن ما تبحث عنه هو مزيج من

belongs_to :feeded, :polymorphic => true

في فئة سجل التدقيق الخاصة بك و

has_many :logs, :as => :feeded, :dependent => :destroy

في فئة photalbum الخاصة بك.

إذا لم يكن لديك فصل لتمثيل سجل التدقيق الخاص بك ، فيجب أن تكون قادرًا على إضافة ملف belongs_to إلى الفصل الحالي (في الإضافات الخاصة بك ربما؟).

لست متأكدًا بنسبة 100 ٪ من: AS =>: خيار التغذية ، سيتعين عليك تسمية هذا الرمز بشكل صحيح ولست متأكدًا مما يتوقعه ActivereCord ، ولكن belongs_to ستبحث العلاقة عن feeded_id و feeded_type ، لذلك عندما يكون الكائن "الوالد" عبارة photo_album.id = audit_logs.feeded_id AND audit_logs.feeded_type = 'PhotoAlbum'. نظرًا لأن هذا لا يتطلب أي تغييرات على قاعدة البيانات الخاصة بك ، يجب أن تستمر جميع التعليمات البرمجية الموجودة في العمل.

يمكنك القراءة على خيارات للجمعيات هنا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top