Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html Rails:关联表上列的总和_Html_Ruby On Rails_Ruby_Sum - Fatal编程技术网

Html Rails:关联表上列的总和

Html Rails:关联表上列的总和,html,ruby-on-rails,ruby,sum,Html,Ruby On Rails,Ruby,Sum,我有一个网站列表,每个网站都有一个域名列表。我已经总结了这些领域每个网站的成本。我接下来要做的是汇总网站的所有成本,并得到所有网站的一个总价 因此,我必须总结一下成本: <% @websites.includes(:domains).each do |website| %> <%= number_to_currency website.domains.sum(:costs), :locale => :nl %> <% end %> :nl%>

我有一个网站列表,每个网站都有一个域名列表。我已经总结了这些领域每个网站的成本。我接下来要做的是汇总网站的所有成本,并得到所有网站的一个总价

因此,我必须总结一下成本:

<% @websites.includes(:domains).each do |website| %>
   <%= number_to_currency website.domains.sum(:costs), :locale => :nl %>
<% end %>

:nl%>
这将返回:

65,00欧元12,50欧元12,50欧元12,50欧元12,50欧元25,00欧元23.435,50欧元37,50欧元0,00欧元0,00欧元0,00欧元0,00欧元0,00欧元34,00欧元


现在我需要找到一种方法来总结这些总和…

获取所有网站的所有域的成本总和的最简单解决方案是:

@websites.includes(:domains).map{|website| website.domains.sum(:costs)}.sum
编辑 如果要获取数据库中所有域的成本总和,可以使用(它将只生成一个SQL查询):


获取所有网站所有域的总成本的最简单解决方案是:

@websites.includes(:domains).map{|website| website.domains.sum(:costs)}.sum
编辑 如果要获取数据库中所有域的成本总和,可以使用(它将只生成一个SQL查询):


比在Ruby中进行迭代更有效的方法是在查询中选择聚合:

@websites = Website.select('websites.*, SUM(domains.cost) AS websites.domain_costs')
       .left_outer_joins(:domains)
这样就不需要将域记录加载到内存中,而且DBs在简单聚合方面比Ruby更有效

然后,您可以通过以下方式访问总和:

<% @websites.each do |website| %>
   <%= number_to_currency website.domain_costs, :locale => :nl %>
<% end %>

:nl%>

比在Ruby中迭代更有效的方法是在查询中选择聚合:

@websites = Website.select('websites.*, SUM(domains.cost) AS websites.domain_costs')
       .left_outer_joins(:domains)
这样就不需要将域记录加载到内存中,而且DBs在简单聚合方面比Ruby更有效

然后,您可以通过以下方式访问总和:

<% @websites.each do |website| %>
   <%= number_to_currency website.domain_costs, :locale => :nl %>
<% end %>

:nl%>

collection.map{…}.sum
=>
collection.sum{…}
collection.map{…}.sum
=>
collection.sum{…}
能否显示表结构和模型关系?能否显示表结构和模型关系?