Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 从用户帖子中获取投票的价值_Ruby On Rails_Ruby_Acts As Votable - Fatal编程技术网

Ruby on rails 从用户帖子中获取投票的价值

Ruby on rails 从用户帖子中获取投票的价值,ruby-on-rails,ruby,acts-as-votable,Ruby On Rails,Ruby,Acts As Votable,我有一个模型snippets,用户可以在其中发布代码片段。他们发布的代码片段可以使用acts\u as\u votablegem进行投票。这是完美的工作方式,当用户投票时,片段的投票计数增加1 尽管如此,我想知道是否有一种方法可以获得一个用户发布的代码片段的总票数 因此,如果一个用户发布了4个代码段,每个代码段的值为2票,那么我尝试只获取他们代码段的总值,即8票 此代码用于获取单个代码段的投票: <%= @snippet.weighted_score %> 尽管我如何才能获得一

我有一个模型
snippets
,用户可以在其中发布代码片段。他们发布的代码片段可以使用
acts\u as\u votable
gem进行投票。这是完美的工作方式,当用户投票时,片段的投票计数增加1

尽管如此,我想知道是否有一种方法可以获得一个用户发布的代码片段的总票数

因此,如果一个用户发布了4个代码段,每个代码段的值为2票,那么我尝试只获取他们代码段的总值,即8票

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

<%= @snippet.weighted_score %>


尽管我如何才能获得一个用户发布的代码片段的总价值?

通过执行
@user.voces


查看
作为投票者的角色
文档,它已经做了你想做的任何事情。

我假设你有关系
用户
是否设置了许多
片段?如果是这种情况,您应该能够获得与该用户相关的所有代码片段,并对
的投票进行汇总

user.snippets.sum { |s| s.votes_for.size }
编辑:或在您的情况下:

user.snippets.sum { |s| s.weighted_score }
参考资料:


这取决于你。您可以在
User
模型中创建类似
def分数的方法;snippets.sum{s|s.weighted_score};结束
,然后从视图中调用
,或者您可以直接在视图中调用
,尽管这没有那么干净。