Как распечатать все элементы, которые принадлежат_ на эту таблицу

StackOverflow https://stackoverflow.com/questions/3175993

Вопрос

Хорошо, я не уверен, что мой титул был достаточно ясен, но я постараюсь объяснить

У меня есть две таблицы: заказы, которые has_many pooks и предметы, которые принадлежат_to заказы. Я только начал изучать ROR и застрял простым заданием. Все, что я хочу, это отображать заказы и связанные с ними такие предметы:

Заказ 1:
Пункт 1.
Пункт 2.

Заказ 2:
Пункт 1.
Пункт 2.
...

Я знаю, как отображать заказы или предметы отдельно, я знаю, как отображать заказы предметов (item.forder.id), но как отображать заказы и элементы в таблице, как выше? В шаблоне, где я отображаю заказы, я мог пройти через каждый элемент каждой итерации и сравнить его зарубежную запись_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. Метод, который доступен из рельсов 2.3+. Вы могли бы использовать простой Order.all.each хотя.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top