获得用户帖子

时间:2016-11-22 22:10:16

标签: ruby-on-rails ruby acts-as-votable

我有一个模型snippets,用户可以在其中发布一个代码段。他们发布的片段可以使用acts_as_votable gem进行投票。这是完美的,当用户投票时,该片段的投票计数增加一个。

虽然,我想知道有没有办法获得他们发布的一个用户的片段的总票数?

因此,如果用户发布了4个片段,每个片段的值为2票,那么我试图仅获得其片段的总值 - 即8。

此代码用于获取单个代码段的投票:

<%= @snippet.weighted_score %>

虽然我怎样才能获得一个用户发布片段的总价值?

2 个答案:

答案 0 :(得分:0)

您可以通过@user.votes

始终查看用户的所有投票

查看acts_as_voter文档here,它已经做了你想要的任何事情。

答案 1 :(得分:0)

我假设您设置了user has_many snippets关系?如果是这种情况,您应该能够获得与用户关联的所有片段并总结votes_for

user.snippets.sum { |s| s.votes_for.size }

编辑:或者在您的情况下:

user.snippets.sum { |s| s.weighted_score }

参考文献:

http://apidock.com/rails/Enumerable/sum

https://github.com/ryanto/acts_as_votable