忍受我,因为我是一个 Rails 菜鸟。我有一个基本的联赛系统。联赛 -> 赛季 -> 分区 -> 球队。我希望我的部门和团队属于任意数量的赛季。我的模型如下...
class Season < ActiveRecord::Base
belongs_to :league
has_many :season_division_teams
has_many :divisions, :through => :season_division_teams
end
class Division < ActiveRecord::Base
belongs_to :league
has_many :seasons, :through => :season_division_teams
has_many :season_division_teams
has_many :teams, :through => :season_division_teams
end
class Team < ActiveRecord::Base
belongs_to :league
has_many :season_division_teams
has_many :seasons, :through => :season_division_teams
has_many :divisions, :through => :season_division_teams
end
class SeasonDivisionTeam < ActiveRecord::Base
belongs_to :season
belongs_to :division
belongs_to :team
end
我最终想要做的是,考虑到我在“第一季”,我有哪些部门,然后给这些部门哪些团队是这些部门的一部分(对于给定的赛季)。
Season.Find(1).divisions.all do |division|
# Do something with the teams that make of the division (for that season)
# division.teams.count
end
我只是不知道如何在 Rails 中做到这一点,这在 SQL 中对我来说似乎很简单。
在此先感谢您的帮助。
编辑:
澄清一下,我试图让球队在一个特定的赛季(包括他们的部门)。使用我的模型,我知道我可以得到给定季节的分区。我只需要那些部门和赛季的球队。
再次感谢。