كيفية طباعة جميع العناصر التي تنتمي إلى هذا الجدول
-
02-10-2019 - |
سؤال
حسنًا ، لست متأكدًا من أن عنواني كان واضحًا بما فيه الكفاية ، لكنني سأحاول شرح
لديّ جدولين: أوامر has_many العناصر والعناصر التي تنتمي إلى الطلبات. لقد بدأت للتو في تعلم ROR والتعليق بمهمة بسيطة. كل ما أريده هو عرض الطلبات والعناصر ذات الصلة مثل هذا:
الأمر 1:
البند 1
البند 2
الأمر 2:
البند 1
البند 2
...
أعرف كيفية عرض الطلبات أو العناصر بشكل منفصل ، أعرف كيفية عرض أوامر العناصر (item.order.id) ، ولكن كيفية عرض الطلبات والعناصر في الجدول كما هو مذكور أعلاه؟ في القالب الذي أعرض فيه أوامر ، يمكنني أن أتجاوز كل عنصر في كل عنصر ومقارنته Obside Order_id مع order.id ، ولكن هذا سيكون محرجًا. أفترض أنني يجب أن أحصل على عناصر في نوع من التجزئة متعددة الأبعاد حيث سيكون مفتاح Order_id ثم يمكنني فقط الرجوع إلى هذا التجزئة بمعرف الطلب والحصول على جميع العناصر فيه ، لكنني لست متأكدًا من أنه صحيح.
آمل أن يكون ما كتبته هنا مفهومًا.
المحلول
عندما تحدد أ has_many
العلاقة ، تحصل تلقائيًا على طرق الاستعلام عن تلك الكائنات. في هذه الحالة ، الطريقة order.items
.
لذلك يمكنك أن تفعل:
Order.find_each do |order|
puts "Order #{order.id}:"
order.items.each do |item|
puts "Item #{item.id}"
end
end
(إستعملت find_each الطريقة ، والتي تتوفر من Rails 2.3+. يمكنك استخدام بسيطة Order.all.each
على أية حال.