سؤال

لدي النموذجين التاليين

class ContactField < ActiveRecord::Base
end

class Address < ContactField
end

class Phone < ContactField
end

و

class Contact < ActiveRecord::Base
end

class Company < Contact
end

class Person < Contact
end

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

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

المحلول

قلت بالفعل في اللغة الإنجليزية العادية :-)

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

Class Contact <activerecord :: Base Has_many: Contact_fields End Class Contactfieldfield <activerecord :: Base ينتمي: نهاية الاتصال

سيتم تورث هذه العلاقة من قبل كل من العنوان والهاتف

نصائح أخرى

يبدو أنك تصف ملكا للعلاقة. يجب تحديد الجمعيات في الفصل الأم، حتى يمكن تورثها من قبل الفئات الفرعية.

class ContactField < ActiveRecord::Base
  belongs_to :contact
  belongs_to :company, :foreign_key => :contact_id
  belongs_to :person, :foreign_key => :contact_id
end

class Contact < ActiveRecord::Base
  has_many :contact_fields
  has_many :addresses
  has_many :phones
end

ومع ذلك، سوف @ contact.contact_fields فقط إعادة سجلات جهة اتصال. إذا كنت بحاجة إلى الأساليب المحددة في أي من الفئات الفرعية، فيمكنك دائما استخدام طريقة تصبح. هناك بعض الطرق حول ذلك. هذه إضافة الجمعيات الإضافية، كما فعلت. أو استخدام activerecord :: Base # يصبح

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