rails преобразует методы класса в именованную область

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

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

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

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

Какие-либо предложения?


person Kenji Crosland    schedule 06.11.2009    source источник
comment
Упс, похоже, эта ссылка все объясняет: railsforum.com/viewtopic.php?id=28709< /а>   -  person Kenji Crosland    schedule 06.11.2009