1

我正在使用印象派宝石,效果很好。

我在我的 user/show.html.erb 视图中使用它来计算一个人的个人资料的所有展示次数(user.rb 是可展示的)

<%= @user.impressionist_count %>

我决定由用户分解每个微博,并决定也计算它(micropost.rb 是易受影响的)

micropost/show.html.erb- 我正在使用此代码来计算特定帖子被查看的次数

<%= @micropost.impressionist_count %>

我试图总结属于同一用户的所有@micropost.impressionist_count 并将其添加到user/show.html.erb。我怎样才能做到这一点?

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

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

4

1 回答 1

1

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

在 RDBMS 支持的系统中,您可以通过使用 JOIN(AR 用语中的:joins)简单地为给定用户预先加载所有相关的微帖子。抓取了所有相关的微博后,您可以简单地执行以下操作:

@user.impressionist_count + @user.microposts.sum(&:impressionist_count)

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

在 Mongo 方面,我可以看到的唯一区别是您将对数据库发出的请求数量,除非您已将微帖子嵌入到每个用户文档中。

希望这可以帮助。

于 2013-04-18T02:17:53.997 回答