2009-11-06 4 views
0

Rails новичок здесь. Я пытаюсь получить некоторые методы класса в named_scopes. Моя структура приложения похожа на приложение для блогов с комментариями пользователей. Каждая модель комментария имеет атрибут оценки, определяемый рейтингами других пользователей. Я хочу иметь именованный объем, который возвращает десяти лучших пользователей с наибольшим общим счетом из суммы всех баллов за каждый комментарий, который они сделали.rails конвертировать методы класса в именованный диапазон

Чтобы получить общий балл, который я создал этот метод:

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

Затем, чтобы получить лучшие десять баллов как метод класса, я использую это:

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 

Я пытался чтобы получить ту же функциональность в именованной области, но я не могу понять ее.

Любые предложения?

+0

Упс, посмотрите, как эта ссылка объясняет все это: http://railsforum.com/viewtopic.php?id=28709 –

ответ

1
named_scope :top_commenters, :limit => 10, :order => "total_score DESC" 
Смежные вопросы