Я не уверен, как сделать has_many: между игроками и играми, но может быть проще, если вы начнете с чего-то вроде этого:
Team Model
id
name
has_many :players
has_many :games
Player Model
id
name
team_id
has_one :team
Тогда модель игр будет иметь что-токак (в дополнение к тому, что у вас уже есть):
has_one :team1, :class_name => 'Team'
has_one :team2, :class_name => 'Team'