3

我对我认为的基本关联有疑问。

我有一个游戏模型和一个 Matchset 模型。

在游戏模型中是游戏列表。这些游戏只在游戏表上列出一次,但它们可以属于许多 Matchset。

matchset.rb -

has_many :games

对于 game.rb 我不确定我会放什么。我不想放置belongs_to,因为它属于许多匹配集,而不仅仅是一个。而且我不认为我想把 has_and_belongs_to_many 因为匹配集不一定“属于”游戏,但也许我只是看错了。

示例:第 1 场比赛有第 1、3 和 5 场比赛。第 2 场比赛有第 2 场和第 3 场比赛。第 3 场比赛有第 3、4 和 5 场比赛。

我在 Oracle SQL 方面的背景以及在我的脑海中的 Matchset 表看起来像这样。

id | game_id 
1  | 1
1  | 3
1  | 5
2  | 2
2  | 3
3  | 3
3  | 4
3  | 5

任何帮助表示赞赏。

4

1 回答 1

2

这些关系应该适合你:

class Game < ActiveRecord::Base
  has_many :game_match_set_relations
  has_many :match_sets, through: :game_match_set_relations

class MatchSet < ActiveRecord::Base
  has_many :game_match_set_relations
  has_many :games,  through: :game_match_set_relations

class GameMatchSetRelation < ActiveRecord::Base
  belongs_to :game
  belongs_to :match_set

  validates :game_id, presence: true
  validates :match_set_id, presence: true
于 2013-11-14T19:15:08.577 回答