Новичок в 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
Я пытался получить ту же функциональность в именованной области, но я не могу понять это.
Какие-либо предложения?