ruby-on-rails-3 rails-activerecord activemodel activeresource

ruby on rails 3 - Diferencia entre el modelo activo, el registro activo y el recurso activo



ruby-on-rails-3 rails-activerecord (3)

¿Hay alguien que pueda ayudarme definiendo la diferencia exacta entre el Modelo activo, el Registro activo y el Recurso activo? He hecho suficiente Google para encontrar la diferencia exacta, pero no obtuve nada concreto que pueda decir la diferencia exacta entre ellos. En este momento, todos me parecen iguales. Entonces, por favor, dame la respuesta adecuada con algunos puntos concretos.


Lo que yo entiendo:

ActiveModel + Database Support = ActiveRecord

ActiveModel a través de WebService API = AcitveResource


Rails 3 está diseñado teniendo en cuenta la modularidad. Cada módulo tiene su propio propósito y funcionalidad.

ActiveModel : este componente se creó en Rails 3. Tomaron todas las partes relacionadas con el modelo que no tenían un requerimiento de base de datos de Rails 2 ActiveRecord y lo movieron a ActiveModel. Entonces ActiveModel incluye cosas como validaciones. Más información: http://www.rubyinside.com/rails-3-0s-activemodel-how-to-give-ruby-classes-some-activerecord-magic-2937.html

ActiveRecord : este es el componente que asocia una clase a la base de datos. Esto le dará funcionalidad a la clase, como métodos que facilitan la extracción de registros de la base de datos (un ejemplo es el método de búsqueda).

ActiveResource : similar a ActiveRecord. Sin embargo, en lugar de estar respaldado por una base de datos, un objeto ActiveResource es respaldado por otra aplicación a través de una API de servicio web. Más información: http://ofps.oreilly.com/titles/9780596521424/activeresource_id59243.html

(No se pudo averiguar sobre ActiveBase ... ¿de dónde lo escuchaste?)


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

Piensa en un súper modelo que necesita una validación constante.

ActiveModel se puede usar para muchas cosas, pero principalmente se lo reconoce para agregar soporte de validación a los registros de modelos / db.

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

Piense en el registro como en el registro de la mesa.

Configura una asignación entre una nueva clase y una tabla existente en una base de datos.

En el contexto de una aplicación, estas clases se conocen comúnmente como modelos. Los modelos también se pueden conectar a otros modelos; esto se hace definiendo asociaciones.

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

En segundo plano, Rails usa ActiveRecord para la administración de esquemas y propiedades de definición para sus registros, actuando como un ORM (mapeador relacional de objetos):

" ORM: un objeto que envuelve una fila en una tabla o vista de base de datos, encapsula el acceso a la base de datos y agrega lógica de dominio en esa información".

Un esquema describe las propiedades de un registro.

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

Piensa en recursos como R en URL o en el enrutamiento de recursos que alimenta muchos backends de rieles.

Le permite hacer cosas como C reate, R etrieve, U date o D estroy (CRUD) a través de HTTP.

tyler = Person.find(1)

Cuando se realiza una solicitud a una ruta de recursos, una solicitud RESTful se correlaciona con sus verbos HTTP correspondientes y sus interacciones con la base de datos.

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