Je ne trouve pas de très bonnes intros pour les rappels spécifiques dans les rails.Rappels dans Rails
Fondamentalement, je suis face à deux modèles:
- Ordre
- Point, (imbriqué sous forme de commande)
J'utilise le modèle de before_update faire quelques calculs de base:
class Order < ActiveRecord::Base
accepts_nested_attributes_for :line_items
before_update :do_math
protected
def do_math
self.req_total = self.line_items.sum(:total_price)
end
req_total est la valeur totale de la commande, lorsqu'un utilisateur met à jour les montants dont j'ai besoin d'ajouter le prix total des lignes_lignes. Qu'est-ce que je fais mal? Ma logique ne parvient pas à lire le total_price nouvellement soumis.
Merci!
Probablement préférable si vous présentez ce qui ne va pas –
Le code ci-dessus produit l'ancienne somme des total_prices, pas le total_price modifié du formulaire soumis par l'utilisateur. Je pense qu'il fait une requête Sql sur total_price, j'essaie maintenant de suivre certaines des suggestions ci-dessous. –
L'appel line_items.sum retournera en effet dans la base de données. "sum" est une méthode ActiveRecord ... besoin de regarder en utilisant les valeurs du tableau directement et votre propre algorithme de somme en utilisant le tableau ou les méthodes énumérables. –