Сумма значений цикла - PullRequest
0 голосов
/ 19 ноября 2009
<% @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 ... кое-что о массивах.

1 Ответ

5 голосов
/ 19 ноября 2009

Я вижу несколько проблем с вашим кодом. Во-первых, вы должны избегать непосредственного обращения со столбцами идентификаторов. В конце концов, именно поэтому вы вкладываете все эти belongs_to и has_many отношения в свои модели. Например, то, что вы называете предметом, является объектом продажи или продажи, и это belongs_to Продукт, поскольку он включает столбец с именем 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). Я не уверен в том, что делает .*.. 1024 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...