mysql - 如何对 View 中的元素进行求和和计数(Rails 4)?

标签 mysql sql ruby-on-rails ruby methods

因为我需要计算这个循环执行的次数,你能告诉我在这种情况下使用哪种方法来执行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/

相关文章:

mysql - 如何查找文本中出现了多少关键字并使用mysql对其进行排序?

mysql - DB连接池过期了怎么办?

sql - 如何获取与另一列中的项目匹配的一列中的项目计数?

ruby-on-rails - 在自定义 key 事件模型序列化程序下包装属性

ruby-on-rails - 希望能够根据两个不同的值进行多行插入

ruby-on-rails - "bundle install"错误 : cannot open . git/FETCH_HEAD:权限被拒绝

mysql - 将名称拆分为名字和姓氏,然后插入现有的名字列和姓氏列 sql

MySQL条件插入导致错误代码1364 : "Field doesn' t have a default value"

sql - DBD::ODBC 与 win32::odbc

MySQL - 如果不存在则使用子查询插入