Question

Ok, je ne suis pas sûr que mon titre était assez clair, mais je vais essayer d'expliquer

J'ai deux tableaux: commandes que les éléments de has_many et des articles que belongs_to commandes. Je viens de commencer à apprendre RoR et coincé avec une tâche simple. Tout ce que je veux, c'est commandes d'affichage et des éléments connexes comme ceci:

Commander 1:
  Point 1
  Point 2
Commander 2:
  Point 1
  Point 2
...

Je sais comment afficher les commandes ou les éléments séparément, je sais comment afficher les commandes de produits (item.order.id), mais comment afficher les commandes et les éléments dans le tableau ci-dessus comme? Dans le modèle où j'afficher les ordres que je pourrais passer par chaque élément et chaque itération compare order_id étranger avec order.id, mais ce serait maladroit. Je supposant que je devrais obtenir des éléments dans une sorte de hachage multidimensionnel où la clé serait order_id et je pouvais juste faire référence à ce hachage par numéro de commande et d'obtenir tous les éléments dedans, mais je ne suis pas sûr qu'il est correct.

J'espère que ce que je l'ai écrit ici est compréhensible.

Était-ce utile?

La solution

Lorsque vous définissez une relation has_many, vous obtenez automatiquement les méthodes pour interroger ces objets. Dans ce cas, la méthode order.items.

Vous pouvez faire:

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

(I utilisé find_each procédé, qui est disponible à partir de rails 2.3+ . Vous pouvez utiliser un simple Order.all.each bien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top