2012-04-30 61 views
0

我正在创建一个RoR应用来管理一个篮球联盟。我有两个表格:teams & games。它的设定是每个团队都有很多游戏。 games中的每一行都包含两个外键;一个是主队,一个是客队。我有下面的代码来列出games表中的数据:在has_many关系中获取孩子的父母?

<% @games.each do |game| %> 
    <tr> 
    <td><%= game.home_team_id %></td> 
    <td><%= game.away_team_id %></td> 
    <td><%= game.home_team_score %></td> 
    <td><%= game.away_team_score %></td> 
    <td><%= game.date %></td> 
    </tr> 
<% end %> 

然而,前两个部分不工作,大概是因为调用一个对象的孩子时使用的格式。但在这里,即时尝试打电话给孩子的父母(game.home_team_id)

你如何得到一个孩子的父母?

这里是我的游戏模式:

class Game < ActiveRecord::Base 
    belongs_to :team, :foreign_key => "home_team" 
    belongs_to :team, :foreign_key => "away_team" 
    has_many :stats 

end 

回答

3

如果列名,正如你在视图中指定,你应该看到的ID。

通常,在你的游戏模式,你会做

belongs_to :home_team, :class_name=>"Team" 
belongs_to :away_team, :class_name=>"Team" 

那么在你看来,你会做

<td><%= game.home_team.name %></td> 
<td><%= game.away_team.name %></td> 

如果你没有在标识看,因为它是,我会检查是否正在设置值。

在控制台上,只是做:

Game.first.inspect 

如果球队ID是空的,我们已经发现了这个错误的根源。哪些提示您的创建方法存在问题。

+0

更新您的belongs_to以匹配我提供的 –