over 1 year ago

用法:建立多对多关联资料库时使用


例如一个学生可以参加多门课程,一门课程可以有很多学生,这就是多对多的关系。
课程和学生都是一个Model,要建立多对多的关系,我们就需要第三个Model扮演连结的桥梁,来登记每个学生所参加的课程以及课程目前报名的学生名单。我们从这个第三个model可以知道每个学生的状况和课程的状况,所以叫做through
学生through《第三个model》 has_many 课程

同理球队,球员也是多对多,体育协会来当作桥梁
代码如下:
models/player.rb
class Player < ActiveRecord::Base
has_many :sports_associations(player这个model在协会有多笔资料)
has_many :teams, :through => :sports_associations(这些资料要用来判断这个球员参与多少球队)
end

models/team.rb
class Team < ActiveRecord::Base
has_many :sports_associations
has_many :players, :through => :sports_associations
end

models/sports_associations.rb
class SportsAssociations < ActiveRecord::Base

体育协会对球员和球队负责,所以体育协会belongs_to球员和球队

belongs_to :team
belongs_to :player
end

← 全栈营60天复盘 学习心得 深入学习validation →