我有一个模型问题。问题通过联接模型进行评论和投票。在我的问题#index视图中,我希望能够按照评论和投票的数量对查询结果进行排序:
@issues = Issue.limit(10).find(:all, :order => "COMMENT_COUNT DESC")
但是,如果我尝试这样的话:
@issues = Issue.limit(10).find(:all, :order => "issue.comments.count DESC")
它不起作用。我可以在问题模型中添加评论和投票计数......但我不确定最好的方法是什么,我甚至不认为这是最好的方法。
我该怎么做?
答案 0 :(得分:0)
这比这更多一点。这需要更多的sql。您必须在查询中包含针对您的问题的注释表。然后,您必须按问题ID对结果进行分组,以获得每期的评论数。
这样的事情应该有效:
@issues = Issue.find(:all, :order => "count(comments.id) DESC"), :joins =>"inner join comments on comments.issue_id = issues.id", :group =>"issues.id",:limit=>"10" )