Noob rails question

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

[email protected] wrote:

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

Szymon R. wrote:

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?

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs