首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将来自两个不同模型的所有页面印象计数为一个数字?(rails 3)

如何将来自两个不同模型的所有页面印象计数为一个数字?(rails 3)
EN

Stack Overflow用户
提问于 2013-04-18 07:46:42
回答 1查看 389关注 0票数 1

我用的是印象派的宝石,效果很好。

我在我的user/show.html.erb视图中使用它来统计一个人的个人资料的所有印象(user.rb是可印象的)

代码语言:javascript
复制
<%= @user.impressionist_count %>

我决定把每个用户的微博都拆分出来,并决定也计算一下(micropost.rb是敏感的)。

In micropost/show.html.erb -我使用这个代码来计算一个特定的帖子被浏览了多少次

代码语言:javascript
复制
<%= @micropost.impressionist_count %>

我尝试汇总属于同一用户的所有@micropost.impressionist_count,并将其添加到用户/show.html.erb中。我该怎么做呢?

所以用数学术语来说,这就是我想要做的

总数= user.impressionist_count + sum(micropost.impressionist_count)s

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-18 10:17:54

您尚未指定与此gem一起使用的数据库。它既与关系型数据库兼容,也与MongoDB兼容。根据选择,求和可能会执行不同的操作。

在一个由关系型数据库支持的系统中,您可以通过使用一个连接(在AR术语中是:),简单地为给定的用户立即加载所有相关的joins microposts。获取了所有相关的微型帖子后,您可以简单地执行以下操作:

代码语言:javascript
复制
@user.impressionist_count + @user.microposts.sum(&:impressionist_count)

Rails为您提供了Enumerable#sum (http://api.rubyonrails.org/classes/Enumerable.html#method-i-sum),您可以使用它来实现此目的。

对于Mongo而言,我能看到的唯一不同之处在于,除非您已经将微帖子嵌入到每个用户文档中,否则您将向数据库发出的请求量会有所不同。

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16072202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档