因为我需要计算这个循环执行的次数,你能告诉我在这种情况下使用哪种方法来执行count
吗?而且 - topicality
是多对多字段,将显示多个条目,例如:4 8 10 2
我需要对这些和总和应除以它们的计数。
<% s.courses.each do |c| %>
<%= c.skills.topicality %>
<%= link_to c.title, c %>
<% end %>
我希望我的解释是有道理的,据我谷歌搜索有 sum
方法和 count
方法,但我使用它们的尝试都没有成功。
你能告诉我如何做到这一点吗?
谢谢。
最佳答案
我不确定我是否理解这个问题,但我可以给出一些建议......
如果您想要计算集合中项目的数量,最好在 Rails 中使用 .size
95% 的时间。因此,s.courses.size
应该告诉您您有多少门类(class)。如果您使用.count
,即使不需要,您也可以保证进行另一次数据库命中。如果之前已加载集合,则使用 .size
将不会查询数据库。
如果您想在循环浏览类(class)时有一个索引,可以使用s.courses.each_with_index do |c, index|
。这将跟踪您所处的迭代。
如果您想对类(class)集合中的值求和,可以使用s.courses.sum(:some_attribute)
。这将在数据库中进行求和。如果 topicality
是一个整数数组,您可以使用简单的 c.skills.topicality.sum
对它们求和。
关于mysql - 如何对 View 中的元素进行求和和计数(Rails 4)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23871580/