1

TeamオブジェクトとオブジェクトがありGameます。

AGameは1人の勝者を持つことになっていますが、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

これにより、構造がより論理的になり、コードが単純になり、他の理由でWinsを別のリソースとして使用し始めたい場合に他の利点があります。

于 2012-11-25T20:45:42.483 に答える