0

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

同じ機能を名前付きスコープに入れようとしましたが、理解できないようです。

助言がありますか?

4

1 に答える 1

1
named_scope :top_commenters, :limit => 10, :order => "total_score DESC"
于 2009-11-06T03:18:04.797 に答える