В вашем примере вы работаете в представлении. Представление не предназначено для манипулирования данными и их отображения для отображения данных. Если вы хотите добавить метод, который предоставляет вам общую цену, вы можете добавить его к своей модели:
def total_price
self.price*self.quantity
end
Тогда вы можете назвать это следующим образом:
<%= product.total_price %>
Принцип заключается в том, что вы никогда не сохраняете в базе данных данные, которые можно рассчитать из других полей, которые уже есть в базе данных.
Также не следует использовать цикл for
. Используйте итерацию так:
<% @order.line_items.each do |product| %>
<%= stuff you do...... %>
<% end %>
Когда вы хотите сумму, которую вы можете сделать:
@order.line_items.collect(&:total_price).sum