متعدد الأشكال القضبان جمعيات (إلى الوراء؟)
-
22-07-2019 - |
سؤال
ولدي ارتباط الكثيرين إلى واحد القضبان متعددة الأشكال في بلدي القضبان التطبيق لنموذج «القضية». هناك العديد من الأشياء التي لديها حالات، لذلك يمكنني الوصول إلى حالة كل شيء له بالممارسة "thing_that_has_a_case.case.
ولكن، وأنا أحاول أن تذهب في الاتجاه الآخر وأنا غير متأكد من كيفية. لدي الوصول إلى الكائن القضية ولكن أريد أن الوصول إلى الشيء الذي يتم فتش. هل لدى القضبان وسيلة للقيام بذلك؟ أنا يمكن أن يفعل ذلك مع التحول القبيح أن يقوم مزود مختلفة تجد لكل نوع من وجوه، ولكن كنت أتمنى أن القضبان لديهم وسيلة أفضل. شكرا!
المحلول
ويمكنك إضافة شيء من هذا القبيل لنموذج قضيتك:
belongs_to :parent, :polymorphic => true
و.. الذي يفترض أن يكون لديك حقول parent_id
وparent_type
في نموذج قضيتك (تغيير الوسيطة الأولى إلى belongs_to
اعتمادا على كيفية وقد سميت هذه المجالات الجمعيات). وبمجرد الانتهاء من ذلك، يجب أن تكون فقط قادرة على الرجوع إلى case.parent
لمثيل قضية معينة.
و، فقط لتوضيح وجهة واحدة من هذه العلاقة لديه شيء مثل:
has_many :cases, :as => :parent, :dependent => :destroy
و(أفترض أنك بالفعل أن العمل على أساس وصفك)