有没有人可以通过定义 Active Model、Active Record 和 Active Resource 之间的确切区别来帮助我。我已经做了足够的谷歌搜索以找到确切的区别,但没有得到任何具体的东西可以说明它们之间的确切区别。现在他们在我看来都一样。所以请给我一些具体点的适当答案。
3 回答
Rails 3 在设计时考虑了模块化。每个模块都有自己的用途和功能。
ActiveModel:该组件是在 Rails 3 中创建的。他们将所有与 Rails 2 ActiveRecord 数据库无关的模型相关部分移到 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
ActiveModel https://github.com/rails/rails/tree/master/activemodel
想想一个不断需要验证的超级模特。
ActiveModel 可用于许多事情,但主要用于向模型/数据库记录添加验证支持。
ActiveRecord 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执行创建、检索、更新或删除( 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