Я думаю, что «Fixture» - довольно плохое имя для модели. В любом случае:
class Fixture < ActiveRecord::Base
belongs_to :home_team, :class_name => "Team", :foreign_key => "home_team_id"
belongs_to :away_team, :class_name => "Team", :foreign_key => "away_team_id"
named_scope :with_team, lambda { |team_id| { :conditions => ['(home_team_id = ?
or away_team_id = ?)', team_id, team_id]} }
def fix_list
[home_team.title, "Draw", away_team.title]
end
end
class Team < ActiveRecord:Base
def fixtures
Fixture.with_team(id)
end
end
Конечно, при переносе таблицы "fixtures" вам необходимо создать столбцы с именами home_team_id
и away_team_id
.
Редактировать: я просто замечаю, что моя первоначальная has_many
ассоциация в Team
бесполезна. Это named_scope
не проверено, и я иду спать!