noob rails question

M

mtbeedee

I am trying to set up an app where I track games between teams and the
winners... So I have one "teams" table with info like the name and
coach and whatever with one row per team.

I then have a "game" table with the home, away, and winners. But each
of these fields is a "team" really. How can I set up the model so that
game.home and game.away make sense and both refer to the same "team"
object. I want to be able to do things like "if game.winner ==
game.home". Is that clear?

I will put the relavent pieces that I have been trying below so you can
laugh at my noobness. (and understand what I have)

Game migration:
t.column :home_id, :integer
t.column :away_id, :integer
t.column :winner_id, :integer

Team migration:
t.column :name, :string
t.column :coach, :string

Game model: (I dont know what this should look like at all but this is
my guess)
has_one :home
has_one :away
has_one :winner

Team model:
has_many :games

Can anyone help me understand how this should look and why?

Thanks
 
S

Szymon Rozga

I am trying to set up an app where I track games between teams and the
winners... So I have one "teams" table with info like the name and
coach and whatever with one row per team.

I then have a "game" table with the home, away, and winners. But each
of these fields is a "team" really. How can I set up the model so that
game.home and game.away make sense and both refer to the same "team"
object. I want to be able to do things like "if game.winner ==
game.home". Is that clear?

has_one :home, :class_name => "Team"
has_one :away, :class_name => "Team"
has_one :winner, :class_name => "Team"

This is off the top of my head, but I believe that this is documented
under the has_one method in the Rails API.

-Szymon
 
M

mtbeedee

Szymon said:
has_one :home, :class_name => "Team"
has_one :away, :class_name => "Team"
has_one :winner, :class_name => "Team"

This is off the top of my head, but I believe that this is documented
under the has_one method in the Rails API.

-Szymon

Dont you need :foreign_key in there somehow? How does that work?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,209
Messages
2,571,089
Members
47,689
Latest member
kilaocrhtbfnr

Latest Threads

Top