2010-02-03 17 views

Respuesta

21

ORM es Object Relational Mapper. Significa que no tiene que llamar manualmente la base de datos usted mismo; el ORM lo maneja por usted.

Ruby on Rails usa uno llamado ActiveRecord, y es realmente bueno.

ORM le permite hacer cosas como:

User.find(50).contacts 

En lugar de escribir manualmente una instrucción SELECT con juntas, wheres, etc.

+0

Ahora lo tengo mike.Is der any other ORM then active record? – Arun

+1

Hay otras herramientas ORM para Ruby (DataMapper, Sequel, Friendly, etc.), y hay algunas para Ruby on Rails (DrySQL), pero Active Record generalmente se usa con Rails. Hay muchos ORM para otros idiomas; Hibernate es probablemente el más conocido. –

+0

En Rails oficialmente ("fuera de la caja") estos son solo ActiveRecord. Para Ruby hay algunos otros ORM (uno llamado DataMapper que parece llamar mucho la atención), pero estos otros requieren algún trabajo para levantarse y trabajar en Rails. – RyanWilcox

1

ORM es el objeto del asignador relacional. Significa que no tiene que llamar manualmente la base de datos usted mismo; el ORM lo maneja por usted. Ruby on Rails usa uno llamado ActiveRecord, y es realmente bueno.

Active Record como un marco ORM

Active Record nos da varios mecanismos, el más importante es la capacidad de:

> Represent models and their data. 
> Represent associations between these models. 
> Represent inheritance hierarchies through related models. 
> Validate models before they get persisted to the database. 
> Perform database operations in an object-oriented fashion. 

click hear

3

ORM es sinónimo de objeto-relacional-Mapping. Básicamente significa que Active Record toma datos que se almacenan en una tabla de base de datos utilizando filas y columnas, que deben modificarse o recuperarse escribiendo declaraciones SQL (si está utilizando una base de datos SQL), y le permite interactuar con esa información como si fuera un objeto Ruby normal.

Ejemplo: Supongamos que se desea obtener una matriz de todos los usuarios a continuación, en lugar de escribir código para la conexión de base de datos y luego escribir alguna consulta SQL como SELECT * FROM users y convertir el resultado en una matriz, puedo escribir User.all y Active Record me da esa matriz llena de objetos de Usuario con los que puedo jugar como me gustaría.

Realmente no importa qué tipo de base de datos está usando. Active Record suaviza todas las diferencias entre esas bases de datos para que no tenga que pensar en ello. Se centra en escribir código para su aplicación, y Active Record pensará en los detalles esenciales de conectarlo a su base de datos. También significa que si cambia de una base de datos a otra, no necesita cambiar ningún código de aplicación principal, solo algunos archivos de configuración.