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 %>

そして私のコントローラーには=があります

@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 の操作もできません...配列に関する何か。

4

1 に答える 1

5

あなたのコードにはいくつかの問題があります。まず、id 列を直接扱うことは避けてください。結局のところ、これらすべてbelongs_tohas_many関係をモデルに入れるのはそのためです。たとえば、あなたが item と呼んでいるものは、venta または Sell オブジェクトであり、belongs_toそれには という名前の列が含まれているため、Productproduct_idです。したがって、使用できます

item.product

それ以外の

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

言うまでもなくfind_by_id、通常のfind.

inject合計を追加して見つけるには、ルビ関数を調べることをお勧めします。

@costo_de_comprafind(:all)ではなくa に由来する配列find(:first)です。あなたが何をしているのかよくわかり.*.ません。

于 2009-11-18T22:09:31.363 に答える