0

ゲームのリストがあります。それぞれにスコアのリストが埋め込まれています。スコアリスト以外の最高スコアへの参照を保持したいと思います。

class Game
  include Mongoid::Document
  field :best_score_id, type: Moped::BSON::ObjectId
  ... 
  embeds_many :scores

class Score 
  include Mongoid::Document
  field :user, type: String
  field :score, type: Int

と を試してみbelongs_toましたhas_oneが、エラー メッセージが表示されました。スコアの関連ビットを「best_score」と呼ばれるハッシュに保存できると思いますが、多くのスコアを埋め込み、そのうちの 1 つを「Best」として参照する方が理にかなっています。これは可能ですか?

4

1 に答える 1

0

あなたはこのようなことをすることができます -

ゲームモデルクラスで最高のスコアを選ぶメソッドを書く -

def best_score
  score = scores.order_by(:score, :desc).limit(1)
  if score.nil?
    nil
  else
    score.first
  end
end

また、スコアはゲームに埋め込まれているため、データベースへの +1 クエリもありません。

于 2013-03-18T04:16:51.697 に答える