Cette question s'adresse aux débutants mais, pour une raison quelconque, je ne trouve pas la réponse ailleurs. Je suis dans client/show.html.erb et je veux que mon client manipule order_items.Utilisation d'informations imbriquées dans le contrôleur/les vues
De nombreuses commandes ont beaucoup ordre_items et je veux rechercher TOUS ces ordre_items pour trouver ceux tels que lire == false.
#controller
@customer = Customer.find(params[:id])
@orders = @customer.orders
@order_items = @ orders.order_items ne fonctionne pas. Étant donné que j'ai plusieurs éléments dans @orders, comment puis-je collecter tous les items de commande appartenant à @orders?
=== === EDIT
Ma structure entière de la base de données est un grand groupe complexe de tables et je dois parcourir cet arbre pour ce point de vue particulier.
customer has_many orders
orders has_many order_items
order_items belongs_to category
Comment, par exemple, trouve le nombre de ordre_items de mon client qui appartiennent à la catégorie X?
Dernière question: pourquoi ne pas @ orders.find_all_by_x (...) travailler?
Pour la partie 1: Alors que le client a_many: order_items,: through =>: orders, I ne peut pas dire que OrderItem has_many: customers,: through =>: orders. Ma table de commande a certainement seulement l'ID customer_id et NOT order_item. Pouvez-vous avoir un one-way has_many à travers? – sscirrus
peut-être vous avez besoin has_one: à travers – Bohdan
@sscirrus: Bohdan a raison, vous pouvez utiliser has_one: client,: through =>: order – Calavera