Thanks Colin. That solved it, although I swear I already tried to do it like that!
Your help is much appreciated. On Oct 25, 7:52 am, Colin Law <[email protected]> wrote: > On 24 October 2011 23:03, Graham Dawe <[email protected]> wrote: > > > > > > > > > > > Philip Hallstrom wrote in post #1028174: > > >> :foreign_key > >> Specify the foreign key used for the association. > >> :primary_key > >> Specify the method that returns the primary key used for the > >> association. By default this is id. > > > Hi Philip, > > > Thanks for your reply. I have tried to use the :foreign_key with the > > following results. (fyi fixtures has changed to matches). The matches > > table has "home_team_id" and "away_team_id" columns. > > > match.rb > > > belongs_to :home_team, :foreign_key => 'home_team_id' > > belongs_to :away_team, :foreign_key => 'away_team_id' > > You need to use :class_name here so that it knows what the foreign > keys are pointing to. > > > > > team.rb > > > has_many :home_matches, :class_name => 'Team' > > has_many :away_matches, :class_name => 'Team' > > > matches_controller.rb > > > @matches = Match.all > > @teams = Team.all > > > matches.html.erb > > > <% @matches.each do |match| %> > > Home <%= match.home_team %> > > You probably want match.home_team.name or something like that, you are > trying to display the whole team object. > > Colin > > > > > > > > > > > Away <%= match.away_team %><br> > > <% end %> > > > I get the following when I load matches/index.html.erb ... > > > Home #<Match:0x103cfafe0> Away #<Match:0x103cee948> > > Home #<Match:0x103cebf18> Away #<Match:0x103ce8278> > > > The dev/log reads the following > > > Started GET "/matches" for 127.0.0.1 at Mon Oct 24 23:00:54 +0100 2011 > > Processing by MatchesController#index as HTML > > Match Load (0.5ms) SELECT "matches".* FROM "matches" > > Team Load (0.4ms) SELECT "teams".* FROM "teams" > > Match Load (0.3ms) SELECT "matches".* FROM "matches" WHERE > > "matches"."id" = 1 LIMIT 1 > > Match Load (0.2ms) SELECT "matches".* FROM "matches" WHERE > > "matches"."id" = 2 LIMIT 1 > > CACHE (0.0ms) SELECT "matches".* FROM "matches" WHERE "matches"."id" > > = 2 LIMIT 1 > > Match Load (0.2ms) SELECT "matches".* FROM "matches" WHERE > > "matches"."id" = 3 LIMIT 1 > > Match Load (0.2ms) SELECT "matches".* FROM "matches" WHERE > > "matches"."id" = 7 LIMIT 1 > > Match Load (0.1ms) SELECT "matches".* FROM "matches" WHERE > > "matches"."id" = 6 LIMIT 1 > > Rendered matches/index.html.erb within layouts/application (16.0ms) > > Completed 200 OK in 38ms (Views: 20.5ms | ActiveRecord: 1.8ms) > > > So, it is reading the table but just returning the wrong stuff. I don't > > exactly know what one of <Match:0x103cebf18> is called so I don't know > > what to search for to correct it. > > > Any help much appreciated! > > > -- > > Posted viahttp://www.ruby-forum.com/. > > > -- > > You received this message because you are subscribed to the Google Groups > > "Ruby on Rails: Talk" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]. > > For more options, visit this group > > athttp://groups.google.com/group/rubyonrails-talk?hl=en. > > -- > gplus.to/clanlaw -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

