私は2つのクラスを持っています:
class Solution
has_many :solution_votes
class SolutionVote
belongs_to :solution
私の見解では、次のようなものがあります。
Proposed Solution A - 2 votes up - 5 votes down
Proposed Solution B - 1 vote up - 0 votes down
Proposed Solution C - 0 votes up - 0 votes down
Proposed Solution D - 7 votes up - 2 votes down
Proposed Solution E - 3 votes up - 1 vote down
私が望むのは、これを最も多くのUP投票でソートして、代わりに次のようにすることです:
Proposed Solution D - 7 votes up - 2 votes down
Proposed Solution E - 3 votes up - 1 vote down
Proposed Solution A - 2 votes up - 5 votes down
Proposed Solution B - 1 vote up - 0 votes down
Proposed Solution C - 0 votes up - 0 votes down
私はこれまでのところこれを持っています:
scope :most_votes_up,
select("solutions.*, count(solution_votes.id) AS votes_count").
where(['solutions.state = ?', 'Proposed']).
joins(:solution_votes).
group("solutions.id").
order("votes_count DESC")
次の出力が生成されます。
Proposed Solution D - 7 votes up - 2 votes down
Proposed Solution A - 2 votes up - 5 votes down
Proposed Solution E - 3 votes up - 1 vote down
Proposed Solution B - 1 vote up - 0 votes down
しかし...私がまだ抱えている問題は次
のとおりです
。投票(現在、どの提案されたソリューションが最も多くの票(賛成票と反対票の両方)を獲得したかに基づいて順序付けられています)?
私はPostGRESQLを使用しています