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

我尝试执行 an belongs_toand ahas_one但收到错误消息:“由于嵌入了价格历史记录,因此不允许通过关系关联从 Game 文档中引用 Score 文档。” 我想我可以将分数的相关位存储在一个名为“best_score”的哈希中,但嵌入许多分数然后将其中一个称为“最佳”对我来说更有意义。这可能吗?

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 回答