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

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)

大家加油~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、心得体会1、今天完成了什么? Rails guide 4 170页 5个小时 重看了镐头书看了第一部分 1个小...
    柳辉阅读 2,801评论 0 1
  • Yii提供了强大的数据库编程支持。Yii数据访问对象(DAO)建立在PHP的数据对象(PDO)extension上...
    layjoy阅读 7,484评论 0 6
  • 是否要花光所有的力气才会有一丝幸运
    萍香阅读 981评论 0 1
  • 好人真的有好报吗? 俗话说,好人有好报。可现实中,好人往往更能忍让,更谦虚,更随和,更好说话,在竞争社会,往往是吃...
    蜗牛的视界阅读 2,256评论 0 1
  • 药膳是中医学的一个重要组成部分,是中华民族历经数千年不断探索、积累而逐渐形成的独具特色的一门临床实用学科,是中华民...
    virgilzhang阅读 5,218评论 0 0