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

Ari*_*man 50 activeresource activemodel ruby-on-rails-3 rails-activerecord

是否有人可以通过定义活动模型,活动记录和活动资源之间的确切区别来帮助我.我已经做了足够的谷歌搜索,以找到确切的差异,但没有得到任何具体可以告诉他们之间的确切差异.现在他们看起来都和我一样.所以请给我一些具体的答案.

ric*_*day 79

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 ......你从哪里听到的?)

  • 如果我回答了您的问题,请将其标记为已接受. (2认同)

小智 11

我的理解:

ActiveModel +数据库支持= ActiveRecord

ActiveModel通过WebService API = AcitveResource


lfe*_*445 7

ActiveModel https://github.com/rails/rails/tree/master/activemodel

想想一个不断需要验证的超级模型.

ActiveModel可以用于很多事情,但主要用于为模型/ db记录添加验证支持.


ActiveRecord https://github.com/rails/rails/tree/master/activerecord

记录视为表记录.

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

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

  class Firm < ActiveRecord::Base
    has_many   :clients
    has_one    :account
    belongs_to :conglomerate
  end
Run Code Online (Sandbox Code Playgroud)

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

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

架构概述了记录的属性.


ActiveResource https://github.com/rails/activeresource

认为资源喜欢将R在URL或的资源路由是权力许多轨后端.

允许您通过HTTP 执行C reate ,R etrieve,U pdate或D estroy(CRUD)等操作.

  tyler = Person.find(1) 
Run Code Online (Sandbox Code Playgroud)

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

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