在代码中:
<% @offer2.each do |offer|%>
<% @menuName=Menu.find_by_menu_item_name(offer.menuName_get)%>
<% @line_item.each do |line_item|%>
<%@validPrice=(@menuName.price)*(offer.disAmountOrPercentage)%>
<%end%>
<%end%>
我是rails的新手。我想添加@validPrice += @validPrice
但它不在循环内或循环外工作。所以如何得到这个变量的总和。
答案 0 :(得分:1)
试试这个:
<% @validPrice = 0 %> #initialized with zero
<% @offer2.each do |offer|%> # 1st loop
<% @menuName=Menu.find_by_menu_item_name(offer.menuName_get)%>
<% @line_item.each do |line_item|%> # 2nd loop
<% @validPrice += (@menuName.price)*(offer.disAmountOrPercentage) %>
<%end%>
<%= @validPrice %> # you can access and print @validprice out of 2nd loop here
<%end%>
答案 1 :(得分:0)
您应该在循环顶部声明@validPrice= 0
。所以它不会重复初始化。
<% validPrice = 0 %>
<% @offer2.each do |offer|%>
<% @menuName=Menu.find_by_menu_item_name(offer.menuName_get)%>
<% @line_item.each do |line_item|%>
<% validPrice += (@menuName.price)*(offer.disAmountOrPercentage) %>
<%end%>
<%end%>
如果你为这个总结制作模型方法,而不是在视图页面中运行,那会更好。
答案 2 :(得分:0)
试试这个
<% @offer2.each do |offer|%>
<% @menuName=Menu.find_by_menu_item_name(offer.menuName_get)%>
<% @line_item.each do |line_item|%>
<%= validPrice = (@menuName.price)*(offer.disAmountOrPercentage) %>
<%end%>
<%end%>