1
创建外键
t.integer :
表名单数
_id
关联表的命名要以首字母的顺序决定如
categories_products
关联表的联合索引:
add_index:categories_products,[:product_id,:category_id]
2
模型对象中指定关联
一对一关联
belongs_to:order
has_one:invoice
一对多关联
belongs_to:order
has_many:ling_items
多对多关联
has_and_belongs_to_many:products
3 belongs_to
声明(当前对象有一个父对象)
belongs_to
接受一个
hash
参数:
(
如果改变关联名称
)
:自定义父对象属性名,
:父对象类名
(:class_name)
,
:外键名
(:foreign_key)
,
:条件
(:conditions)
具有下列方法:
.product
返回关联对象
.product=obj
设置关联对象
.build_product(attributes{})
新建一个关联对象
.create_product(attributes{})
新建并保存一个关联对象
4 has_one()
声明(当前对象有一个子对象)
has_one
接受一个
hash
参数:(除
belongs_to
的参数还有)
:
dependent
=>
值为:
:
destroy
删除父记录的同时删除子表的关联记录
:
nullify
删除父记录之后留下子记录,同时将记录外键置
null
:
false
删除父记录时不改变子记录的任何
具有下列方法:
.invoice
返回关联对象
5 has_many()
声明
接受一个
hash
参数(包括
has_one
的所有键值对)
:
order=>”xxx,yyy
DESC”
查询时按照
xxx
,
yyy
降序得到数组
具有下列方法:
.orders
返回关联对象
.orders.replace()
替换为新的一组
orders
对象
.orders.destroy_all
.orders.clear
解除所有关联(把外键置为
NULL
)
.orders.find()
find
方法与所有的
find
方法一样
6 has_and_belongs_to_many()
声明
具有前面的所有参数和方法
7
把模型类映射成为连接表
在不作为连接表的模型中除了加入
has_many:
被作为连接表的模型复数,还要加入一个
has_many:
与之进行实际关联的模型复数
, :through=>:readings
与
has_many
可以改变关联名称如:
has_many:
自定义的关联名称复数
,
:through=>xxx , :source=>:
实际关联的模型(注意不是复数
)
当通过关联模型表找到的数据可能是多条一样的这里通过在
has_many
的后面在加入一个参数来去掉重复
:unique=>true
这是在
ActiveRecord
中实现的;若在数据库中则在
has_many
中要加入查询条件参数
:select=>”distinct users.*”
8
扩展关联(既关联时加入关联的条件)
在
has_many
后加入语句块并定义一个给条件时的关联查找
如:
has_many
:articles, :through=>:readings do
def
rated_at_or_above(xxxx)
find :all, :conditions=>xxxx
end
end
用时:
good_articles=user.articles.rated_at_or_above(xxxx)
共享关联方法时则把方法放入模块中然后在
has_many
后家如参数
:extend=>
模块名称
9
连接多张表
1
)单表集成(用于属性重复率比较高的模式)
一张数据库表中存有说有继承与被集成的属性字段
继承时只要在模型首部标记
Customer<Person
等
对于继承之间的关联只需要在表中设置好关联的字段,在用
belongs_to
的自定义方法来定义与被继承之间的关系
2
)多态关联(用于属性重复率比较少的模式)
每个多态一张表
在引用多态的模型的表中建立外键
关联名
_id
,关联名
_type
两个字段;模型中则
belongs_to
:
关联名
, :polymorphic=>true
注:
polymorphic
表示多态
在每个多态模型中建立
has_one :
引用此多态的模型名
, :as=>:
关联名
用时:引用多态的模型
.
关联名
=
某一个多态对象
分享到:
相关推荐
### Ruby on Rails 101:深入理解与实践 #### 引言 《Ruby on Rails 101》是一本介绍Ruby on Rails(简称RoR或ROR)的基础书籍,旨在为初学者提供一个全面而深入的学习框架。本书由Peter Marklund编写,包含了五天...
### Ruby on Rails Guides v2 - Ruby on Rails 4.2.5 #### 一、重要概念及基础假设 - **重要概念**:本指南旨在帮助读者深入理解Ruby on Rails(以下简称Rails)4.2.5版本的核心功能与最佳实践。 - **基础假设**:...
《Ruby on Rails入门权威经典》是一本专门为初学者设计的指南,旨在帮助读者全面掌握Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby编程语言的开源框架,以其“DRY(Don't Repeat ...
Ruby on Rails 4 Tutorial 是一本深受开发者欢迎的书籍,它详细介绍了如何使用Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby语言的开源框架,以其“约定优于配置”(Convention over ...
Ruby on Rails(简称Rails)是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web开发过程并提高效率。在这个“ruby on rails在线考试系统”中,我们可以探讨以下几...
Ruby on Rails是一种流行的开源网站开发框架,它利用Ruby语言,遵循MVC(模型-视图-控制器)设计原则,用于快速开发数据库驱动的动态网站。本书《Ruby on Rails 实践》是一本指南,旨在向读者介绍Ruby on Rails框架...
### Ruby on Rails 指南 v5.0.1 中文版 #### Rails入门 - **前提条件**:为了能够顺利地开始Rails的学习之旅,读者需要具备一定的Ruby语言基础,并且对Web开发有一定的了解。 - **Rails是什么?**:Rails是一种...
Ruby on Rails,简称Rails,是由David Heinemeier Hansson基于Ruby语言开发的一个开源Web应用程序框架,它遵循敏捷开发的理念,致力于提高开发效率和代码的可读性。在Rails 3.1版本中,引入了许多重要更新和改进,...
【Ruby on Rails手順】是关于使用Ruby编程语言和Ruby on Rails框架进行Web开发的一系列步骤。Ruby是一种面向对象的、动态的编程语言,而Ruby on Rails(简称Rails)是基于Ruby构建的一个开源Web应用程序框架,它遵循...
《初识Ruby on Rails:源代码解析》 Ruby on Rails(简称Rails)是一个基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web开发过程,提高开发效率。本资料包包含了...
《Ruby on Rails专业指南》是Wrox出版社发布的一本关于Ruby on Rails开发的权威书籍,其源代码在wrox官方网站可以获取。这本书深入浅出地介绍了如何使用Ruby on Rails这一强大的Web开发框架来构建高效、可扩展的Web...
Ruby on Rails,简称Rails,是一种基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加简洁高效。本教程将引导你从零开始学习Ruby on Rails的开发,通过一个具体的...
ActiveRecord是Rails中的ORM(对象关系映射)工具,它将数据库表与Ruby类关联起来,简化了数据库操作。通过定义模型类及其属性,开发者可以方便地执行CRUD(创建、读取、更新、删除)操作,而无需编写SQL语句。 4....
本章详细介绍Rails数据持久化技术ActiveRecord的使用,包括ORM与ActiveRecord的简介、建立数据表的映射、执行动态查询、插入数据、删除数据、表之间的关联,以及数据有效性验证等。 第11章 MVC的控制器层。本章...
Ruby on Rails(简称Rails)是一种基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和代码的可读性。本实践指南将深入探讨Rails的核心概念、关键特性以及如何在...
Ruby on Rails是一个使用Ruby语言编写的开源Web应用框架,它使用了“约定优于配置”(convention over configuration)的开发哲学,旨在减少代码量和提高开发效率。Rails框架的核心是遵循MVC(模型-视图-控制器)...
《Ruby on Rails学生选课系统详解》 在信息技术飞速发展的今天,教育领域的信息化建设也日益受到重视。其中,学生选课系统作为学校管理的重要组成部分,对于提高教学效率、优化资源配置有着不可忽视的作用。本文将...
本书的作者们试图紧跟rails框架和ruby语言的最新发展所带来的新特性、新方法、新尝试,在动态的大环境中带领读者解读与web 2.0站点开发关联性较强的技术,期望将最实用和最新鲜的开发技术推荐给读者。 与其他中文...