Contexte: J'ai 2 modèles Ordre et article.rails manière de calculer le sous-total et total
Je veux calculer le sous-total de l'article basé sur item.quantity * item.price Pour l'instant ceci est fait dans la vue (mais pas l'endroit approprié). J'ai également besoin de calculer le total de la commande, mais je suis coincé. Je n'ai pas de colonne pour ça. Quelle est la meilleure approche? Utilisez le modèle? Aide ou observateur?
Pour l'instant je réussi à avoir sous-total de travail par ordre aide
def item_subtotal(item)
item_subtotal = item.quantity * item.price
end
Solution de travail:
modèle de l'article
def subtotal
price * quantity
end
Dans la vue render <%= item.subtotal %>
ordre mo del
def total_price
total_price = items.inject(0) { |sum, p| sum + p.subtotal }
end
Commande # Afficher la vue de rendre <%= number_to_currency(@order.total_price) %>
quel modèle: commandez ou article? Comment sait-il que le sous-total est égal au prix * quantité? Qu'en est-il du total? – Gaelle
Le sous-total doit être défini dans le modèle 'Item' tandis que le total général doit être calculé dans le total' Order' en sélectionnant tous les éléments et en calculant leur sous-total. – Jack
Pouvez-vous s'il vous plaît écrire un exemple pour le total et surtout comment rendre dans la vue. Merci. La vue d'ordre # show va comme ceci '<% pour l'item dans @ order.items%><% = item.price%>' – Gaelle