<% @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 %>
在我的控制器里我有=
@ventas_ocurridas_en_este_periodo = Venta.find(:all, :conditions => ['created_at >= ? and created_at <= ?', Date.today.beginning_of_month, Date.tomorrow])
当我循环并从最初不可用的项中获取值时,如何将从此循环中产生的所有值汇总为集中总数?
我也无法进行@precio_de_venta的操作 - @costo_de_compra ...关于数组的事情。
答案 0 :(得分:5)
我发现您的代码有几个问题。首先,您应该避免直接处理id列。毕竟,这就是您将所有belongs_to
和has_many
关系放入模型的原因。例如,您调用item的是venta或sell对象,它是belongs_to
Product,因为它包含一个名为product_id
的列。因此,您可以使用
item.product
而不是
@pid = item.producto_id
Product.find_by_id(@pid)
更不用说find_by_id
只能由常规find
替换。
为了添加和查找总计,我建议您查看inject
ruby函数。
@costo_de_compra
是一个数组,因为它来自find(:all)
而不是find(:first)
。我不确定你.*.
做了什么。