如何在每个循环中添加变量

时间:2014-10-07 10:05:06

标签: ruby-on-rails ruby-on-rails-4

在代码中:

<% @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但它不在循环内或循环外工作。所以如何得到这个变量的总和。

3 个答案:

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