سؤال

ربما يكون هذا بسيطًا جدًا ولكني لم أتمكن بعد من فهم المشكلة.

عندي 3 طاولات...(أكثر من ذلك بكثير) ولكن في هذا السيناريو 3 هذا يهم.

أماكن الحجوزات والتقييمات

الأماكن بها العديد من الحجوزات

يحتوي كل حجز على تقييم واحد (لأن المستخدم يقوم بالتقييم مرة واحدة فقط) وينتمي إلى (أ) المكان

التقييمات تنتمي إلى (أ) الحجز

لذا، على الرغم من أن الحجوزات لها تقييم واحد فقط، إلا أن الأماكن لديها العديد من التقييمات من خلال الحجوزات حيث أن الأماكن لديها العديد من الحجوزات أيضًا

ولكن لا يبدو أن هذا يعمل؟ويبدو أن كل الباقي.

تحتوي الحجوزات على place_id والتقييمات تحتوي على booking_id، ولقد نجحت مع جميع has_many الأخرى من خلال الارتباطات...ليس فقط has_one؟أيه أفكار؟شكرًا

إضافة:إذا قمت بتغيير Bookings إلى has_many: ratings فهو يعمل...ولكن الحجوزات لن يكون لها سوى تقييم واحد لكل حجز...لذلك لا يبدو هذا أمرًا جيدًا.

Invalid source reflection macro :has_one for has_many :ratings, :through => :bookings.  Use :source to specify the source reflection.
هل كانت مفيدة؟

المحلول

has_many :through لا يعمل مع has_one العلاقات على نموذج الانضمام؛راجع تذاكر Rails التالية للحصول على التفاصيل:

إذا كان ذلك ممكنًا، فمن المحتمل أن يكون الحل الأفضل هو تعديل علاقاتك بحيث يتم الحجز belongs_to تصنيف بدلا من has_one تقييم.

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