2010-05-20 37 views
0

好吧,所以在添加一些控制器和重新定位某些代码之前,我有this working just fine。我觉得我错过了一些非常简单的东西,但花了数小时试图弄清楚发生了什么。这是情况。从一个单独的控制器第2部分按总和排序2

class Question < ActiveRecord::Base 
    has_many :sites 
end 

class Sites < ActiveRecord::Base 
    belongs_to :questions 
end 

我想在站点表'like'列的总和,以显示我的网站。从我的previous StackOverflow question我已经在/ views/sites/index.html.erb文件中调用部分时有效。然后,我将部分内容移至/ views/questions/show.html.erb file中,并成功显示了这些网站,但未能按照从网站视图中调用时那样对它们进行排序。

我打电话的部分从/views/questions/show.html.erb文件,如下所示:

<%= render :partial => @question.sites %> 

这里是SitesController#指数代码

class SitesController < ApplicationController 

    def index 
    @sites = @question.sites.all(:select => "sites.*, SUM(likes.like) as like_total", 
      :joins => "LEFT JOIN likes AS likes ON likes.site_id = sites.id", 
      :group => "sites.id", 
      :order => "like_total DESC") 

    respond_to do |format| 
     format.html # index.html.erb 
     format.xml { render :xml => @sites } 
    end 
    end 

回答

0

啊......事实证明,我已经将Sites控制器中的@sites控制器代码移动到了Questions控制器显示操作。然后我就从

<%= render :partial => @question.sites %> 

在/views/questions/show.html.erb页面改变我的偏

<%= render :partial => @sites %> 
0

我认为这应该是

@sites = @question.sites.all(:select => "sites.*, SUM(likes.like) as like_total", 
     :joins => "LEFT JOIN likes AS likes ON likes.site_id = sites.id", 
     :group => "sites.id", 
     :order => "SUM(likes.like) DESC") 
+0

当我把在站点控制器index操作它不会做任何东西。它是否需要去问题控制器的某个地方? – bgadoci 2010-05-20 06:01:02