活动模型、活动记录和活动资源之间的区别



有人可以帮助我定义活动模型、活动记录和活动资源之间的确切区别吗。我已经在谷歌上做了足够多的搜索来找到确切的区别,但没有得到任何具体的东西来判断它们之间的确切区别。现在他们在我看来都是一样的。所以请给我一个合适的答案,并提出一些具体的观点。

Rails3的设计考虑到了模块化。每个模块都有自己的目的和功能。

ActiveModel:这个组件是在Rails 3中创建的。他们将所有没有Rails2ActiveRecord数据库需求的与模型相关的部分移到ActiveModel中。因此ActiveModel包含了验证之类的东西。更多信息:http://www.rubyinside.com/rails-3-0s-activemodel-how-to-give-ruby-classes-some-activerecord-magic-2937.html

ActiveRecord:这是将类与数据库关联的组件。这将为类提供一些功能,例如方法,使从数据库中提取记录变得容易(例如find方法)。

ActiveResource:类似于ActiveRecord。然而,ActiveResource对象不是由数据库支持,而是由另一个应用程序通过web服务API支持。更多信息:http://ofps.oreilly.com/titles/9780596521424/activeresource_id59243.html

(搞不清ActiveBase……你是从哪里听到的?)

我的理解:

ActiveModel+数据库支持=ActiveRecord

通过WebService API的ActiveModel=ActiveResource

ActiveModelhttps://github.com/rails/rails/tree/master/activemodel

想想一个经常需要验证的超级模型

ActiveModel可以用于许多事情,但主要用于为models/db记录添加验证支持。


活动记录https://github.com/rails/rails/tree/master/activerecord

记录视为表记录。

在数据库中的新类和现有表之间设置映射。

在应用程序的上下文中,这些类通常被称为模型。模型也可以连接到其他模型;这是通过定义关联来实现的。

class Firm < ActiveRecord::Base
has_many   :clients
has_one    :account
belongs_to :conglomerate
end

在后台,rails使用ActiveRecord进行模式管理,并为记录定义属性,充当ORM(对象关系映射器):

">ORM:一个对象,用于包装数据库表或视图中的行,封装数据库访问,并在该数据上添加域逻辑。">

模式概述了记录的属性。


活动资源https://github.com/rails/activeresource

想一想资源,就像URL中的R,或者为许多rails后端供电的的资源路由

允许您通过HTTP执行C创建、Retrieve、U更新或Destroy(CRUD)等操作。

tyler = Person.find(1) 

当向资源路由发出请求时,RESTful请求会将其自身映射到相应的HTTP谓词及其数据库交互

GET    => Person.find(1)
POST   => Person.new(:name => 'Tyler', :favorite_page => 'stackoverflow') 
PUT    => tyler.save
DELETE => tyler.destroy