Ruby on rails---- Active Record 关联

2016-10-26 11:35:34来源:CSDN作者:sxl19901204人点击

第七城市

Rails 支持六种关联:

belongs_to

has_one

has_many

has_many :through

has_one :through

has_and_belongs_to_many

  1. belongs_to 关联

belongs_to 关联创建两个模型之间一对一的关系,声明所在的模型实例属于另一个模型的实例

在 belongs_to 关联声明中必须使用单数形式

因为 Rails 自动使用关联中的名字引用类名

  1. has_one 关联

has_one 关联也会建立两个模型之间的一对一关系,但语义和结果有点不一样。这种关联表示模型的实例包含或拥有另一个模型的实例。

3.has_one :through

  1. has_many 关联

has_many 关联建立两个模型之间的一对多关系。在 belongs_to 关联的另一端经常会使用这个关联。has_many 关联表示模型的实例有零个或多个另一个模型的实例。

声明 has_many 关联时,另一个模型使用复数形式。

  1. has_many :through 关联

has_many :through 关联经常用来建立两个模型之间的多对多关联。这种关联表示一个模型的实例可以借由第三个模型,拥有零个和多个另一个模型的实例。

  1. has_and_belongs_to_many 关联

has_and_belongs_to_many 关联之间建立两个模型之间的多对多关系,不借由第三个模型。

根据经验,如果关联的第三个模型要作为独立实体使用,要用 has_many :through 关联;如果不需要使用第三个模型,用简单的 has_and_belongs_to_many 关联即可(不过要记得在数据库中创建连接数据表)。
如果需要做数据验证、回调,或者连接模型上要用到其他属性,此时就要使用 has_many :through 关联。

第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台