1

我有一个Team对象和一个Game对象。

AGame应该有一个赢家 这是一个Team ATeam可以是多个赢家Games

我怎样才能正确地构造它?我正在使用 Mongoid

这是我到目前为止想出的...

class Game
  include Mongoid::Document
  include Mongoid::Timestamps
  has_one :winner, :class_name=>Team
end

class Team
  include Mongoid::Document
  include Mongoid::Timestamps
  has_and_belongs_to_many :games_won, :class_name=>"Game", :inverse_of => :Game 
end
4

1 回答 1

2

考虑将胜利抽象到它自己的类中,这样:

class Game
  has_one :win
end

class Team
  has_many :wins
end

class Win
  belongs_to :game
  belongs_to :team
end

这使结构更合乎逻辑,使代码更简单,并且在您可能出于其他原因希望将 win 作为单独资源开始使用的情况下具有其他优势。

于 2012-11-25T20:45:42.483 回答