循环的和值

Car*_*osa 0 math sum ruby-on-rails

<% @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 %>
Run Code Online (Sandbox Code Playgroud)

在我的控制器中我有=

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

当我循环并从最初不可用的项中获取值时,如何将从此循环中产生的所有值汇总为集中总计?

我也无法进行@precio_de_venta的操作 - @costo_de_compra ...关于数组的一些事情.

gde*_*ino 5

我看到你的代码有几个问题.首先,您应该避免直接处理id列.毕竟,这就是为什么你把所有这些belongs_tohas_many关系放到你的模型中.例如,您所谓的项目是一个venta或sell对象,belongs_to它包含一个名为的列product_id.因此,你可以使用

item.product
Run Code Online (Sandbox Code Playgroud)

代替

@pid = item.producto_id
Product.find_by_id(@pid)
Run Code Online (Sandbox Code Playgroud)

更不用说find_by_id只能由常规代替find.

要添加和查找总计,我建议您查看injectruby函数.

@costo_de_compra是一个数组,因为它来自一个find(:all)而不是一个find(:first).我不确定你.*.做了什么.