سؤال

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

أنا أستخدم هذا الارتباط في نموذج مقالي:

class Article < ActiveRecord::Base
  has_one :header_image, :as => :imageable
  has_many :images, :as => :imageable
end

هل هذا ممكن؟ شكرًا.

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

المحلول

نعم. هذا ممكن تماما.

قد تحتاج إلى تحديد اسم الفصل ل header_image, ، لأنه لا يمكن استنتاجها. تضمن :dependent => :destroy أيضا، لضمان تدمير الصور إذا تمت إزالة المقالة

class Article < ActiveRecord::Base
  has_one :header_image, :as => :imageable, :class_name => 'Image', :dependent => :destroy
  has_many :images, :as => :imageable, :dependent => :destroy
end

ثم على الطرف الآخر ...

class Image < ActiveRecord::Base
  belongs_to :imageable, :polymorphic => true
end

نصائح أخرى

حاولت هذا، ولكن بعد ذلك إرجاع Header_Image إحدى الصور. ببساطة لأن جدول الصور لا يحدد نوع استخدام صورة مختلفة (header_image مقابل الصورة العادية). يقول ببساطة: Imageable_Type = صورة لكلا الاستخدامات. لذلك إذا لم تكن هناك معلومات مخزنة حول نوع الاستخدام، فلا يمكن التمييز ActiverCord.

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