Если Game has_one :team
, тогда Rails предполагает, что в таблице ваших команд есть столбец game_id. Однако вы хотите, чтобы в игровой таблице был столбец team_id, в этом случае вы должны использовать Game belongs_to :team
. Как английский, в данном случае это звучит задом наперед, но как Ruby, это правильно.
Я немного упростил. Вы бы хотели что-то вроде:
class Team < ActiveRecord::Base
has_many :home_games, :class_name => "Game", :foreign_key => 'home_team_id'
has_many :away_games, :class_name => "Game", :foreign_key => 'away_team_id'
end
class Game < ActiveRecord::Base
belongs_to :home_team, :class_name => "Team"
belongs_to :away_team, :class_name => "Team"
end