Active Record
Convenciones
Conexi´
on con la DB.
Asociasiones
Finders
Validaciones
Callbacks
Fin
Active Record Sabor Ruby.
Gast´
on Ramos - ramos.gaston@gmail.com
Active Record, sabor Ruby
1 / 63
Intro
Convenciones
Conexi´
on con la DB.
Asociasiones
Finders
Validaciones
Callbacks
Fin
Acerca de m´ı:
Soy desarrollador web freenlace.
Programo en Ruby desde hace 2 a˜
nos.
Soy miembro deRuby-AR y Ruby del Litoral.
Publiqu´e algunas bibliotecas en ruby.
Colabor´e con el proyecto RubySpec.
Traducci´
on del libro ”Rails 2.1 Qu´e hay de Nuevo?”
Active Record, sabor Ruby
2 / 63
Intro
Convenciones
Conexi´
on con la DB.
Asociasiones
Finders
Validaciones
Callbacks
Fin
Agenda.
1
Intro
2
Convenciones
3
Conexi´
on con la DB.
4
Asociasiones
5
Finders
6
Validaciones
7Callbacks
8
Fin
Active Record, sabor Ruby
3 / 63
Intro
Convenciones
Conexi´
on con la DB.
Asociasiones
Finders
Validaciones
Callbacks
Fin
Active Record es un Patr´
on de Dise˜
no.
Basado en el patr´on ActiveRecord de Martin Fowler (”Patterns
of Enterprise Architecture”)
”Un objeto que engloba una fila de una tabla o vista de la
base de datos, encapsula el acceso a la base de datos, yagrega
l´ogica del dominio del problema sobre estos datos.”
Active Record, sabor Ruby
4 / 63
Intro
Convenciones
Conexi´
on con la DB.
Asociasiones
Finders
Validaciones
Callbacks
Fin
La biblioteca de Ruby Active Record .
”Nunca he visto una implementaci´on de Active Record tan
completa y tan u´til como la de rails.”
Martin Fowler
Active Record, sabor Ruby
5 / 63
Intro
ConvencionesConexi´
on con la DB.
Asociasiones
Finders
Validaciones
Callbacks
Fin
Active Record sigue el standard de ORM.
Active record sigue el standard de ORM y se diferencia de los
dem´as por que minimiza la cantidad de configuraci´on
mediante el uso de un conjunto de convenciones.
Active Record, sabor Ruby
6 / 63
Intro
Convenciones
Conexi´
on con la DB.
Asociasiones
Finders
ValidacionesCallbacks
Fin
Active Record sigue el standard de ORM.
Una clase por tabla.
Un objeto por registro.
Las columnas como atributos de estos objetos.
Active Record, sabor Ruby
7 / 63
Intro
Convenciones
Conexi´
on con la DB.
Asociasiones
Finders
Validaciones
Callbacks
Fin
Convenci´on sobre configuraci´on
Don’t Repeat Yourself
Active Record, sabor Ruby
8 / 63
Intro
Convenciones
Conexi´
oncon la DB.
Asociasiones
Finders
Validaciones
Callbacks
Fin
Una clase por Tabla.
C´
odigo SQL para crear la tabla users:
CREATE TABLE ‘users‘ (
‘id‘ int(11) NOT NULL auto_increment,
‘login‘ varchar(255) default NULL,
‘crypted_password‘ varchar(255) default NULL,
‘email‘ varchar(25,5) default NULL,
PRIMARY KEY (‘id‘) ) ENGINE=InnoDB
Active Record, sabor Ruby
9 / 63
Intro
ConvencionesConexi´
on con la DB.
Asociasiones
Finders
Validaciones
Callbacks
Fin
Una clase por Tabla.
C´
odigo del modelo en Active Record (Ruby):
class User < ActiveRecord::Base
end
Active Record, sabor Ruby
10 / 63
Intro
Convenciones
Conexi´
on con la DB.
Asociasiones
Finders
Validaciones
Callbacks
Fin
Uso de convenciones:
- C´odigo
- Errores
+ Productividad
Active Record, sabor Ruby
11 /63
Intro
Convenciones
Conexi´
on con la DB.
Asociasiones
Finders
Validaciones
Callbacks
Fin
Convenci´
on sobre configuraci´
on.
class User < ActiveRecord::Base
end
Sin archivos XML.
Sin archivos generados.
Cada cosa en un s´olo lugar.
Active Record, sabor Ruby
12 / 63
Intro
Convenciones
Conexi´
on con la DB.
Asociasiones
Finders
Validaciones
Callbacks
Fin
Columnas y atributos.Los objetos de Active Record se corresponden con las filas o
registros de una tabla de la base de datos.
Sin embargo hemos visto que no hay atributos en nuestas
definiciones de clases.
Esto por que Active Record los determina din´
amicamente en
runtime.
Active Record ”mira” el esquema dentro de la base de datos y
configura las clases que mapean las tablas.
Active Record, sabor Ruby
13 / 63...
Regístrate para leer el documento completo.