В таблице может быть столько внешних ключей, сколько вы хотите. Я написал приложение, которое включало планирование команд, играющих в игры.
Способ, которым я справился с этим в классе Game со следующим:
class Game < ActiveRecord::Base
belongs_to :home_team, :class_name => 'Team', :foreign_key => 'team1_id'
belongs_to :visitor_team, :class_name => 'Team', :foreign_key => 'team2_id'
Вы можете добавить соответствующие поля для team1_points, team2_points и т. Д. Вам необходимо настроить модель вашей команды с помощью чего-то вроде:
class Team < ActiveRecord::Base
has_many :home_games, :class_name => 'Game', :foreign_key => 'team1_id'
has_many :visitor_games, :class_name => 'Game', :foreign_key => 'team2_id'
def games
home_games + visitor_games
end
#important other logic missing
end
Обратите внимание, что некоторые из моих соглашений об именах были результатом работы с устаревшей базой данных.