0
我正在尝试为我正在处理的一个小项目组合一对模型关联。我是Rails的新手,所以这对我来说有点混乱。Rails 3与has_many,belongs_to和模型关联:通过
我的用例非常简单。我有一个体育联赛其中有很多科。每个分区有很多团队。每个团队有一个队长和有许多玩家。
现在,玩家和上尉都由班级用户代表。唯一区别他们的是他们的角色。我正在使用CanCan来管理角色。
现在,这里是我的模型,以及如何我已经定义的关联:
class Division < ActiveRecord::Base
belongs_to :league
has_many :teams
end
class League < ActiveRecord::Base
has_many :divisions
end
class Team < ActiveRecord::Base
belongs_to :division
accepts_nested_attributes_for :division
has_one :captain, :class_name => "User"
accepts_nested_attributes_for :captain
has_many :rosters
has_many :players, :through => :rosters, :source => :user
accepts_nested_attributes_for :players
validates_presence_of :name
validates_uniqueness_of :name
end
class User < ActiveRecord::Base
has_many :authentications
has_many :rosters
has_many :teams, :through => :rosters
belongs_to :team
end
And here is my generated Schema file.
- 我是否正确定义了模型关联?
- 当我创建或编辑团队时,如何为团队分配球员或队长?
任何帮助将不胜感激。
我有兴趣了解定义这些模型和关联的不同方式。因为说实话,所有这些belongs_to和has_many的东西真的让我困惑。 – Ramin 2010-11-11 23:03:05
例如,您可以不将船长定义为has_one,而是将其作为名册模型的属性。但在这种情况下使用has_one似乎很好。 – 2010-11-12 07:33:21