Rails初心者です。いくつかのクラス メソッドを named_scopes に取り込もうとしています。私のアプリケーション構造は、ユーザー コメントを含むブログ アプリケーションに似ています。各コメント モデルには、他のユーザーからの評価によって決定されるスコア属性があります。ユーザーが行った各コメントのすべてのスコアの合計から最大の合計スコアを持つ上位 10 人のユーザーを返す名前付きスコープを使用できるようにしたいと考えています。
合計スコアを取得するには、このメソッドを作成しました:
class User < ActiveRecord::Base
# total score for all comments made by a particular user
def total_score
comments.sum(:score)
end
end
次に、トップ 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
同じ機能を名前付きスコープに入れようとしましたが、理解できないようです。
助言がありますか?