在每个“每个执行”循环中在 Rails 中进行基本数学运算并得到总和

Posted

技术标签:

【中文标题】在每个“每个执行”循环中在 Rails 中进行基本数学运算并得到总和【英文标题】:Doing basic math in Rails within each "each do" loop and getting the sum 【发布时间】:2013-11-09 01:41:28 【问题描述】:

Rails 新手!我有与活动相关的产品。每个@product 都有一个与之关联的 .price 和 .orders_count。

我想要做的是将每个@product 的 .price 与 .orders_count 相乘,然后将它们全部相加以获得@campaign 的总成本。

刚接触 Rails,不知道如何编写语法,并在视图中看到以下内容。这是第一部分,但最后并没有将它们全部加起来。感谢您的帮助!

<% @products.each do |p| %>
    <% if p.orders_count? %>
        <%= (number_to_currency((p.price) * p.orders_count)) %>
    <% end %>
<% end %>

【问题讨论】:

不要在视图中这样做。 【参考方案1】:

尝试设置一个变量来跟踪所有产品的总和,并在每次循环中将产品添加到其中。试试这个:

<% sum = 0 %>
<% @products.each do |p| %>
    <% if p.orders_count? %>
        <% product = (number_to_currency((p.price) * p.orders_count)) %>
        <% sum += product %>
        <%= product %>
    <% end %>
<% end %>

The sum is: <%= sum %>

【讨论】:

这太棒了!我还有一个问题,例如 p.price 为 9.99 美元,除非转换为正确的数字,否则我不想工作。我知道 number_to_current(p.price) 会将价值转化为金钱,但是将其转化为十进制数字的帮手是什么? 我这样做了,这样理想吗? number_to_precision 是您正在寻找的方法。通常,您会希望在视图之外执行您的逻辑,但为此目的,IMO 完全可以。 好主意。我很感激!

以上是关于在每个“每个执行”循环中在 Rails 中进行基本数学运算并得到总和的主要内容,如果未能解决你的问题,请参考以下文章

在 Rails 的单表继承中在哪里写关联?

尝试在我的产品视图中在 Rails 中呈现类别

在 for 循环中在 django admin 中创建另一个模型对象

使用 Audited gem 在 Rails 5.2 应用程序中在哪里列出未审核的列?

php中在循环外部如何强制结束循环?

layui中在表格中循环输出数据