【问题标题】:Get the parent of a child in a has_many relationship?在 has_many 关系中获取孩子的父母?
【发布时间】:2012-04-30 00:01:29
【问题描述】:

我正在创建一个 RoR 应用来管理篮球联赛。我有两张桌子:teams & games。它的设置是每支球队都有很多场比赛。 games 中的每一行包含两个外键;一个给主队,一个给客队。我有以下代码来列出games 表中的数据:

<% @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

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    如果列名与您在视图中指定的一样,您应该会看到 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>
    

    如果您没有按原样查看 ID,我会检查是否正在设置值。

    在控制台中,只需:

    Game.first.inspect
    

    如果团队 ID 为空,我们已找到此错误的来源。这暗示了您的 create 方法存在问题。

    【讨论】:

    • 更新您的 belongs_to 以匹配我提供的内容
    猜你喜欢
    • 2011-08-29
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-30
    • 1970-01-01
    相关资源
    最近更新 更多