Association Help , 2 Teams playing a FootballGame

So I have the models

class FootballGame < ActiveRecord::Base end

and

class Team < ActiveRecord::Base end

I want to be able to do something like this

@t1 = Team.create(:name=>"Michigan Wolverines football") @t1.save @t2 = Team.create(:name=>"Penn State Nittany Lions football") @t2.save

@g = FootballGame.create(:hometeam => @t1, :awayteam => @t2) @g.save

my migrations:

create_table :football_games do |t|       t.column :hometeam, :integer       t.column :awayteam, :integer end

create_table :teamsdo |t|       t.column :name, :integer end

I've tried various has_one declarations but I keep ending up with NULL s for hometeam and awayteam...

Anyone help me ??? Thanks

That's because when you have the foreign key in the FootballGames table, you need to use belongs_to instead of has_one.

The easiest way is to make the columns hometeam_id and awayteam_id, and the model becomes

class FootballGame < ActiveRecord::Base   belongs_to :hometeam, :class_name => "Team"   belongs_to :awayteam, :class_name => "Team" end

If you want to keep your field names hometeam and awayteam in the db, then you need to add the :foreign_key option to belongs_to.

Pat

I was thinking that was only solution but for some reason it seemed wrong. Guess it is the only baked in method though.

FootballGame belongs to hometeam FootballGame belongs to awayteam

hmmm..

Thanks Justin