[relacje podwojne] pytanie

Witam,
zakladajac, ze mam takie polaczenia

jak rails rozwiazuja nazwy kluczy obcych jesli mam 2 tabela polaczone (podwojnie ze soba - jak na rysunku)
indeksy:
team_id i team_id1 wystarcza, czy musze w modelu pisac jeszcze cos typu foreign_key => team_id1

Jakies wskzowki?

Jeśli będziesz się trzymał konwencji, że nazwa klucza, to nazwa asocjacji z przyrostkiem id, to nie musisz podawać nazwy klucza w modelu, powinieneś za to utworzyć klucze w migracji:

[code=Ruby] create_table “games” do |t|
t.integer “first_team_id”
t.integer “second_team_id”,
end

add_index “games”, [“first_team_id”], :name => “fk_games_teams_first_team”
add_index “games”, [“second_team_id”], :name => “fk_games_teams_second_team”[/code]
I ponieważ nazwy asocjacji nie odpowiadają nazwom klas, zdefiniować klasę:

class Games < ActiveRecord::Base belongs_to :first_team, :class_name => "Teams" belongs_to :second_team, :class_name => "Teams" end
Powinno zadziałać. Trochę więcej szczegółów:
http://apohllo.pl/guides/association_basics.html#_asocjacja_belongs_to

Dzieki wielkie,

jak tak zrobilem, to w bazie, tabela games mam teraz takie dziwne dodatkowe pole

#<ActiveRecord::ConnectionAdapters::TableDefinition:0x5aedee0>

czy wszystko OK?, tak ma byc?
jesli tak, to co to oznacza?

Ps. ta klase zdefiniowac mozna jako “game” zamiast “games”, czy to bedzie mialo znaczenie?

dobrze, a jak wyciagnac nazwy druzyn tego spotkania, ktore kryja sie pod “firts_team_id” i “second_team_id” tj.
jesli chce wyciagnac id to cos takiego

[code]


Team o id 1:
<%=h @game.first_team_id %>

Team o id 2: <%=h @game.second_team_id %>

[/code] a chcialbym wyciagac nazwe druzyny np poprzez select byloby to tak [code]<%= select("game", "first_team_id", @teams.collect {|t| [ t.name, t.id ] } ) %>

<%= select(“game”, “second_team_id”, @teams.collect {|t| [ t.name, t.id ] } ) %>
[/code]
ale rzecz w tym, ze nie chce miec pola wyboru(select) … tylko same nazwy wyciagniete druzyny 1 i 2
i nie wiem jak do konca to zrobic??
zakladam, ze w akcji napisac odpowiednio
@teams = Team.find(:all, conditions => ?? )

Oczywiście powinno być Game zamiast Games, mój błąd.
Do nazw drużyny dobierasz się np:

<%= @game.first_team.name %> <%= @game.second_team.name %>

dzieki raz jeszcze,
nie wiem co sie tak uparlem na te kontrolery przy wyciaganiu;/

ps. i tutaj tez bez ‘s’
belongs_to :xxx_team, :class_name => “Team”