1

我有一个问题,我以某种不令人满意的方式解决了。

我有一个游戏模型,并且在游戏中总是涉及两个团队,它们是团队模型的一部分。我通过 ID team1_id 和 team2_id 引用这些团队。从我的观点来看,每当我想提取整个团队记录时,我都必须每次都进行查找。

我想知道是否有任何方法可以引用这两个团队而无需经历多对多关系,还是唯一的方法?这几乎是一个 2-Many 关系,我知道这不存在,但我想知道解决这类问题的最佳方法。

谢谢,

这是我的迁移快照:

create_table :games do |t|
  t.datetime "time"
  t.integer "team1_id"
  t.integer "team2_id"


create_table :teams do |t|
  t.references :city
  t.references :user
  t.string "name", :default => "", :null => false  
4

1 回答 1

3

您设置它的方式是正确的方式。在游戏模型上制作两个团队引用,team1 和 team2

class Game 
  belongs_to :team1, class_name: 'Team'
  belongs_to :team2, class_name: 'Team'
end

然后,您可以在游戏实例上调用 team1 和 team2,它会为您拉出团队。

game = Game.first
game.team1
game.team2

或者您可以从 Game 模型中删除 team1 和 team2 id,并创建一个包含游戏和团队的连接表,您只需调用“game.teams”

于 2013-02-13T02:14:47.893 回答