@IT·互联网程序员

【程序员笔记】rails关联对象的处理

2017-04-21  本文已影响48人  李庆文

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)

大家加油~

上一篇下一篇

猜你喜欢

热点阅读