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
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ę:
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 => ?? )