0

我对如何关联我拥有的一些模型有点困惑。希望得到一些指示或想法!

假设我有 3 个模型,分别命名为“MinorTeam”、“MajorTeam”和“Game”。每场比赛参考两支球队;但是我如何指定它是主要团队还是次要团队?

has_one :team_1, :class_name => "MajorTeam"
# or 
has_one :team_1, :class_name => "MinorTeam"

这两个团队模型有很大的不同,所以我不能简单地将主要/次要标志添加到团队模型中。有任何想法吗?

4

1 回答 1

0

多态关联应该起作用。您可能需要稍微调整一下才能使其正确,但是通过使用它们,团队课程不必相似,除了有游戏

module Team
  extend ActiveSupport::Concern
  included do
    has_many :home_games, :class_name => "Game", :as => :team_1
    has_many :away_games, :class_name => "Game", :as => :team_2
  end
end

class MajorTeam < ActiveRecord::Base
  include Team
end

class MinorTeam < ActiveRecord::Base
  include Team
end

class Game < ActiveRecord::Base
  belongs_to :team_1, :polymorphic => true
  belongs_to :team_2, :polymorphic => true
end

我假设你的意思是你has_one的意思是belongs_tohas_one这意味着每支球队只属于一场比赛,这似乎是不正确的。如果我错了,请告诉我。

于 2013-01-20T00:09:24.770 回答