1

问题模型 has_many 答案。如何按 DESC 顺序计算问题的答案数量并相应排序?我使用连接方法。

我怎样才能使回答次数最多的问题 DESC 排序?

更新

以下是如何使回答最多的问题 DESC 排序:

@questions = Question.find(:all,
                           joins: :answers,
                          select: ' "questions".*, count("answers".id) as answers_count', 
                          group: '"questions".id',
                          order: "answers_count DESC")

看法

<% @questions.each do |question| %>
<%= question.answers_count %>
<%= end %>

我现在有另一个问题。我使用洗劫宝石。如何将 .ransack(params[:q]) 添加到 @questions 数组?

4

1 回答 1

0

如果params[:q]是什么告诉你一个问题有多少个答案,我想你可以做

Question.tagged_with(params[:tag]).joins(answers: :user).uniq.ransack(params[:q]).order("params[:q] DESC")

但这没有经过测试,所以不确定。在此处查看有关订购的文档,您应该可以得到它!

您还可以将该查询的结果放在原始帖子中,这将有助于弄清楚这是否不起作用。

于 2013-08-24T09:32:36.707 回答