Pregunta

Ok, no estoy seguro de que mi título era lo suficientemente claro, pero voy a tratar de explicar

Tengo dos tablas: Ordena que elementos has_many y artículos que belongs_to órdenes. Acabo de empezar a aprender RoR y pegado con una tarea sencilla. Todo lo que quiero es órdenes de presentación y elementos relacionados, como la siguiente:

Orden de 1:
  Artículo 1 |   Artículo 2
Orden 2:
  Artículo 1 |   Artículo 2
...

Yo sé cómo mostrar órdenes o elementos por separado, sé cómo mostrar artículos pedidos (item.order.id), pero la forma de mostrar los pedidos y artículos en la tabla como la de arriba? En la plantilla, donde exhibo órdenes Podría seguir a través de cada elemento de cada iteración y compararlo con order_id extranjera order.id, pero eso sería incómodo. Estoy suponiendo que debo conseguir artículos en una especie de picadillo multidimensional en clave sería order_id y luego tan sólo pudiera hacer referencia a este hash por orden Identificación y obtener todos los artículos en ella, pero no estoy seguro de que es correcta.

Espero que lo que he escrito aquí es comprensible.

¿Fue útil?

Solución

Cuando se define una relación has_many, se obtiene automáticamente los métodos de la consulta de dichos objetos. En este caso, la order.items método.

Por lo que puede hacer:

Order.find_each do |order|
  puts "Order #{order.id}:"
  order.items.each do |item|
    puts "Item #{item.id}"
  end
end

(I utiliza find_each método , que está disponible en rieles 2.3+ . Se puede usar un Order.all.each sencilla sin embargo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top