我遇到了我认为是基本关联的问题。
我有一个游戏模型和一个Matchset模型。
在游戏模型中是一个游戏列表。游戏只在游戏桌上列出一次,但它们可以属于许多Matchsets。
matchset.rb -
has_many :games
对于game.rb我不确定我会放什么。我不想把belongs_to放在一起,因为它属于许多匹配集,而不仅仅是一个。而且我认为我不想把has_and_belongs_to_many放在一起,因为matchsets不一定“属于”游戏,但也许我只是看错了。
示例:Matchset 1有游戏1,3和5. Matchset 2有游戏2和3. Matchset 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
感谢任何帮助。
答案 0 :(得分: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