首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

Ruby on Rails,ActiveRecord跟ActiveRelation

2012-07-29 
Ruby on Rails,ActiveRecord和ActiveRelationMVC架构中的Model层负责接受Controller收集的请求参数信息,一

Ruby on Rails,ActiveRecord和ActiveRelation

MVC架构中的Model层负责接受Controller收集的请求参数信息,一般来说去干两件事情。

    将Controller从View收集到的页面数据按照业务需求转化为实体对象之间的关系保存到关系数据库中。以Controller传递过来的参数作为条件,根据应用业务逻辑从关系数据库中获取数据转换为实体对象,计算它们之间的关系,将计算结果反送给Controller转交给View显示。
对于在面向对象思想武装下的Model层来说,无论哪个哪种处理,都免不了关系数据库记录与实体对象之间的转化这个过程。

Ruby on Rails,ActiveRecord跟ActiveRelation

其中最最常用的就是持久化对象的基本操作:创建、更新、查询、删除(CURD)。在Rails中进行实体对象的增删改查就不得不提到ActiveRecord,在介绍ActiveRecord之前要先对active record这个概念加以了解。

active record,注意是小写而且是两个单词。是一种编程模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。这使得我们能够方便地将数据库中的记录转化为实体对象,或将实体对象持久化到数据库中,以便业务代码中处理实体对象之间的关系而不再是数据库表记录之间的关系。其实任何关系数据库与面向对象语言交互的场景下都可以使用这种思想而不局限于某种编程语言。

ActiveRecord,一个单词。是Rails对于这种模式的一种实现,以便我们更快速的实现对象在关系数据库中的持久化开发工作。业务中的实体类继承ActiveRecord,便能方便的将数据库中的记录与实体对象之间进行转换。更近一步,ActiveRecord是一种能够让你的实体对象变“聪明”的帮手,它能够根据自己的结构推知当前的数据库结构并能够和其交互以达到对象的增删改查。

比如说,对于某一个继承了ActiveRecord的User对象来说增删改查操作变得非常方便。我们一般来说都不用关心隐藏在后面的SQL语句编写工作。

users=User.where(:email=>"")users=users.order("name ASC").limit(5)


热点排行