rails采用ActiveRecord方式进行数据的持久化,非常方便老手的使用,但是对于新手来说非常痛苦,因为你不知道哪里就出错了,让人非常痛苦。本文稍作介绍一对一和一对多还有多对多关系的声明和简单使用。
一. 一对一关系
首先是两个model类的声明。
class User < ActiveRecord::Base
has_one :card
end
class Card < ActiveRecord::Base
belongs_to :user
end
我们这种一对一关系很明显是通过外键进行关联的,注意是主表有has_one属性,而从表拥有belongs_to属性。也就是从表中有我们的外键。
那么如何建立两个对象的关联关系呢?
user = User.new
card.user = user
card.save
或者是通过
user.card = Card.create( ... )
总体意思是 a.b=b 和 b.a=a 即可。
二. 一对多关系
class User < ActiveRecord::Base
has_many :bankcard
end
class Card < ActiveRecord::Base
belongs_to :user
end
当声明的时候这样声明,注意中间是一个<<而不再是等于了。
bankcard =Bankcard.new
user.bankcard << bankcard
user.save
三. 多对多关系
声明的时候关系双方都使用has_and_belongs_to_many。其他和一对多关系一样。
最后推荐一下个人感觉很不错的资料 4.3 模型中的关联关系(Relations)
大家加油~