Ruby on rails Rails 3模型关系

Ruby on rails Rails 3模型关系,ruby-on-rails,relationship,rails-activerecord,Ruby On Rails,Relationship,Rails Activerecord,我有点困惑于如何关联我的一些模型。希望得到一些建议或想法 假设我有3个模型,分别是“MinorTeam”、“MajorTeam”和“Game”。每场比赛参考两个队;但我如何确定它是一支主力还是主力 has_one :team_1, :class_name => "MajorTeam" # or has_one :team_1, :class_name => "MinorTeam" 这两个团队模型本质上是不同的,所以我不能简单地向团队模型添加一个主要/次要标志。有什么想法吗?多态关

我有点困惑于如何关联我的一些模型。希望得到一些建议或想法

假设我有3个模型,分别是“MinorTeam”、“MajorTeam”和“Game”。每场比赛参考两个队;但我如何确定它是一支主力还是主力

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

这两个团队模型本质上是不同的,所以我不能简单地向团队模型添加一个主要/次要标志。有什么想法吗?

多态关联应该有效。你可能需要稍微调整一下才能把事情做好,但是通过使用它们,团队课程除了游戏之外,不必有任何相似之处

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
模块团队
扩展ActiveSupport::关注点
包括做
有很多:主场比赛,:class\u name=>“Game”,:as=>:team\u 1
有很多:客场比赛,:class\u name=>“Game”,:as=>:team\u 2
结束
结束
类MajorTeamtrue
属于:团队2,:多态=>true
结束
我假设你的意思是你的
有一个
属于
,因为
有一个
意味着每个队只属于一场比赛,这似乎是不正确的。如果我错了,请告诉我