加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – Rails关联 – 同一个类的多个has_one关系

发布时间:2020-12-17 03:45:55 所属栏目:百科 来源:网络整理
导读:我的问题的一个例子是体育比赛.体育游戏有两个团队,一个主队和一个客队.我的活跃记录模型如下: class Team ActiveRecord::Base belongs_to :gameendclass Game ActiveRecord::Base has_one :home_team,:class_name = "Team" has_one :away_team,:class_name
我的问题的一个例子是体育比赛.体育游戏有两个团队,一个主队和一个客队.我的活跃记录模型如下:

class Team < ActiveRecord::Base

  belongs_to :game

end

class Game < ActiveRecord::Base

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

end

我希望能够通过游戏访问团队,例如:Game.find(1).home_team

但是我得到了一个统一的常数错误:Game :: team.谁能告诉我我做错了什么?谢谢,

解决方法

如果游戏has_one:团队然后Rails假设你的团队表有一个game_id列.你想要的是游戏桌上有一个team_id列,在这种情况下你会使用Game belongs_to:team.作为英语,在这种情况下,它确实是倒退的,但作为Ruby,它是正确的.

我做了一点简化.你想要的东西是这样的:

class Team < ActiveRecord::Base
  has_many :home_games,:class_name => "Game",:foreign_key => 'home_team_id'
  has_many :away_games,:foreign_key => 'away_team_id'
end

class Game < ActiveRecord::Base
  belongs_to :home_team,:class_name => "Team"
  belongs_to :away_team,:class_name => "Team"
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读