2009-11-06 6 views
0

레일즈 뉴비는 여기에 있습니다. named_scopes에 클래스 메소드를 추가하려고합니다. 내 응용 프로그램 구조는 사용자 의견이있는 블로그 응용 프로그램과 유사합니다. 각 코멘트 모델에는 다른 사용자가 작성한 등급으로 결정된 점수 속성이 있습니다. 나는 각 코멘트의 모든 점수의 합계에서 가장 큰 총 점수를 가진 상위 10 명의 사용자를 반환하는 명명 된 범위를 가질 수 있기를 원합니다. 레일스는 클래스 메소드를 명명 된 스코프로 변환합니다.

내가이 방법 만든 총 점수를 얻으려면 : 내가 노력했습니다

class User < ActiveRecord::Base 
    # The top ten users ranked by total score 
    def self.top_commenters 
    find(:all, :limit => 10).sort_by {|commenter| commenter.total_score}.reverse 
    end 
end 

:

class User < ActiveRecord::Base 
    # total score for all comments made by a particular user 
    def total_score 
    comments.sum(:score) 
    end 
end 

을 그럼 난 이것을 사용하는 클래스의 방법으로 상위 10 점수를 얻을 수 있습니다 명명 된 범위에 동일한 기능을 사용하려면 알아낼 수 없습니다.

제안 사항?

+0

위 링크는 다음과 같이 보입니다. http://railsforum.com/viewtopic.php?id=28709 –

답변

1
named_scope :top_commenters, :limit => 10, :order => "total_score DESC" 
관련 문제