美文网首页@IT·互联网程序员
【程序员笔记】rails关联对象的处理

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

作者: 李庆文 | 来源:发表于2017-04-21 22:03 被阅读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)

大家加油~

相关文章

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

    rails采用ActiveRecord方式进行数据的持久化,非常方便老手的使用,但是对于新手来说非常痛苦,因为你不...

  • Rails中实现批量删除

    在Rails生成的控制器模版中,包含的destroy只能处理单个对象,而批量删除要求能够同时处理多个对象,这需要自...

  • 笔记-关联对象

    目录 面试题 伪代码实现 Category添加属性的几种用法 Category为什么不能添加成员变量 底层源码解读...

  • railties库阅读笔记四------application.

    在Rails3.0中,Rails::Application对象是一个Rails引擎,但是,Rails::App...

  • rails模型关联

    rails的orm很完善,可以非常方便的建立模型之间的关联.通过一些简单的代码实现一些常见的关联操作. 关联基础操...

  • [Rails] Active Record Associatio

    资料来源:Rails Guide Guide: -在模型之间构建关联-理解不同种类的关联-使用关联提供的方法 1....

  • Rails 的多态关联

    首先很久没有写过 markdown, 真是不进则退,还好 google 了下,要感谢这篇文章 献给写作者的 Mar...

  • iOS 关联对象笔记

    方法 三个方法的作用分别是: 以键值对形式添加关联对象 根据 key 获取关联对象 移除所有关联对象 例子 下面A...

  • 2018-07-31-对象保存

    rails 中保存一个对象一般发生在以下几种情况: 1、object.save这种当然不用说了。2、在关联中,将一...

  • 《Rails-Guides》Reading notes five

    Rails 支持六种关联 belongs_to关联 belongs_to关联创建两个模型之间一对一的关系,声明所...

网友评论

    本文标题:【程序员笔记】rails关联对象的处理

    本文链接:https://www.haomeiwen.com/subject/gmdjzttx.html