2009-11-18 9 views
0
<% @pid = item.producto_id %> 
<br/> 

Producto: <%= Producto.find_by_id(@pid) %><br/> 
Costo de Compra: <%= @costo_de_compra = Producto.find(:all, :conditions => "id = '#{@pid}'").*.costo_de_compra %><br/> 
Precio de venta: <%= @precio_de_venta = item.precio_de_venta %><br/> 
Utilidad de este producto: <%= @precio_de_venta - @costo_de_compra %><br/><br/> 
<% end %> 

et dans mon contrôleur i ont =valeurs Somme d'une boucle

@ventas_ocurridas_en_este_periodo = Venta.find(:all, :conditions => ['created_at >= ? and created_at <= ?', Date.today.beginning_of_month, Date.tomorrow]) 

Comme je suis Looping et obtenir les valeurs des éléments qui ne sont pas disponibles à l'origine comment puis-je la somme de toutes les valeurs qui se détache de cette boucle en un total concentré?

aussi je ne peux pas faire l'opération de @precio_de_venta - @costo_de_compra ... quelque chose à propos des tableaux.

Répondre

5

Je vois plusieurs problèmes avec votre code. Tout d'abord, évitez de traiter directement les colonnes d'ID. Après tout, c'est pourquoi vous mettez toutes ces relations belongs_to et has_many dans vos modèles. Par exemple, ce que vous appelez l'article est un objet venta ou vendre, et il belongs_to produit car il comprend une colonne nommée product_id. Par conséquent, vous pouvez utiliser

item.product 

au lieu de

@pid = item.producto_id 
Product.find_by_id(@pid) 

ne pas mentionner que find_by_id peut être remplacé que par une find régulière. Pour ajouter et trouver des totaux, je vous recommande de regarder dans la fonction inject ruby.

@costo_de_compra est un tableau tel qu'il provient d'un find(:all) au lieu d'un find(:first). Je ne suis pas sûr de ce que font vos .*..

Questions connexes