2010-05-20 4 views
0

좋아, 그래서 몇 컨트롤러 추가 및 몇 가지 코드의 재배치 전에 this working just fine했다. 나는 여기서 정말로 간단한 것을 놓치고있는 것처럼 느껴지지만, 무슨 일이 일어나고 있는지를 알아 내려고 노력했다. 여기 상황이 있습니다.별도 컨트롤러 부분에서 합계로 주문 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

아 ... 내가 SitesController에서 @sites 컨트롤러 코드를 질문으로 옮겼다는 것이 밝혀졌습니다 컨트롤러 표시 작업. 내가 사이트 컨트롤러의 index 액션에서이하지 않는 것을 넣었을 때 나는 그

<%= 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

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

에서 /views/questions/show.html.erb 페이지 내 부분을 변경했다 아무것도. 질문 컨트롤러에서 어딘가에 있어야합니까? – bgadoci