Ruby on rails 4 活动记录根据给定的投票加入、汇总和分组

Ruby on rails 4 活动记录根据给定的投票加入、汇总和分组,ruby-on-rails-4,activerecord,Ruby On Rails 4,Activerecord,我正在使用rails 4.2和ruby 2.2 我有以下三种型号 参赛者(设计用户) 应该是这样的: Entry.joins(:entrant).joins(:votes) .group('entries.id') .order('SUM("votes.score")'). .pluck(:entrant_name, :title_of_work, 'SUM("votes

我正在使用rails 4.2和ruby 2.2

我有以下三种型号

参赛者(设计用户)


应该是这样的:

Entry.joins(:entrant).joins(:votes)
                     .group('entries.id')
                     .order('SUM("votes.score")').
                     .pluck(:entrant_name, :title_of_work, 'SUM("votes.score")'),'COUNT("votes.score")')

我在控制台中用一组类似的关系解决了这个问题,所以可能需要一些调整,但它应该能让你找到正确的方向。如果卡住了,请告诉我。

应该是这样的:

Entry.joins(:entrant).joins(:votes)
                     .group('entries.id')
                     .order('SUM("votes.score")').
                     .pluck(:entrant_name, :title_of_work, 'SUM("votes.score")'),'COUNT("votes.score")')

我在控制台中用一组类似的关系解决了这个问题,所以可能需要一些调整,但它应该能让你找到正确的方向。如果卡住了,请告诉我。

应该是这样的:

Entry.joins(:entrant).joins(:votes)
                     .group('entries.id')
                     .order('SUM("votes.score")').
                     .pluck(:entrant_name, :title_of_work, 'SUM("votes.score")'),'COUNT("votes.score")')

我在控制台中用一组类似的关系解决了这个问题,所以可能需要一些调整,但它应该能让你找到正确的方向。如果卡住了,请告诉我。

应该是这样的:

Entry.joins(:entrant).joins(:votes)
                     .group('entries.id')
                     .order('SUM("votes.score")').
                     .pluck(:entrant_name, :title_of_work, 'SUM("votes.score")'),'COUNT("votes.score")')

我在控制台中用一组类似的关系解决了这个问题,所以可能需要一些调整,但它应该能让你找到正确的方向。如果您卡住了,请告诉我。

您的型号似乎不对。如果条目和进入者确实是多对多的,那么您应该有一个联接表,但在条目表中似乎有一个entrant_id属性。你能解释一下这两个实体是如何关联的吗?嗨,史蒂夫,也许我把它们设置错了。一个参赛者可以有许多参赛作品,这很简单。那么在参赛作品中,你希望
属于
而不是
有很多:参赛者,:通过=>:投票数
。下一个问题-在你看来(很好的模型顺便问一下!),假设每个参赛者有一行,你希望显示哪个作品标题?或者是每个条目一行(这样我们可以看到同一参赛者有多行)?在视图中,每个条目一行,所有分数相加到分数列中的每个条目。例如,参赛者一号在前十名中可能有三个参赛者。你的模型似乎不正确。如果条目和进入者确实是多对多的,那么您应该有一个联接表,但在条目表中似乎有一个entrant_id属性。你能解释一下这两个实体是如何关联的吗?嗨,史蒂夫,也许我把它们设置错了。一个参赛者可以有许多参赛作品,这很简单。那么在参赛作品中,你希望
属于
而不是
有很多:参赛者,:通过=>:投票数
。下一个问题-在你看来(很好的模型顺便问一下!),假设每个参赛者有一行,你希望显示哪个作品标题?或者是每个条目一行(这样我们可以看到同一参赛者有多行)?在视图中,每个条目一行,所有分数相加到分数列中的每个条目。例如,参赛者一号在前十名中可能有三个参赛者。你的模型似乎不正确。如果条目和进入者确实是多对多的,那么您应该有一个联接表,但在条目表中似乎有一个entrant_id属性。你能解释一下这两个实体是如何关联的吗?嗨,史蒂夫,也许我把它们设置错了。一个参赛者可以有许多参赛作品,这很简单。那么在参赛作品中,你希望
属于
而不是
有很多:参赛者,:通过=>:投票数
。下一个问题-在你看来(很好的模型顺便问一下!),假设每个参赛者有一行,你希望显示哪个作品标题?或者是每个条目一行(这样我们可以看到同一参赛者有多行)?在视图中,每个条目一行,所有分数相加到分数列中的每个条目。例如,参赛者一号在前十名中可能有三个参赛者。你的模型似乎不正确。如果条目和进入者确实是多对多的,那么您应该有一个联接表,但在条目表中似乎有一个entrant_id属性。你能解释一下这两个实体是如何关联的吗?嗨,史蒂夫,也许我把它们设置错了。一个参赛者可以有许多参赛作品,这很简单。那么在参赛作品中,你希望
属于
而不是
有很多:参赛者,:通过=>:投票数
。下一个问题-在你看来(很好的模型顺便问一下!),假设每个参赛者有一行,你希望显示哪个作品标题?或者是每个条目一行(这样我们可以看到同一参赛者有多行)?在视图中,每个条目一行,所有分数相加到分数列中的每个条目。例如,参赛者一号可以有三个进入前十名。
Entry.joins(:entrant).joins(:votes)
                     .group('entries.id')
                     .order('SUM("votes.score")').
                     .pluck(:entrant_name, :title_of_work, 'SUM("votes.score")'),'COUNT("votes.score")')