Ruby on Rails, es una tecnología framework de aplicaciones web de código abierto escrito en el lenguaje de programación Ruby. Trata de combinar la simplicidad con la posibilidad de desarrollar aplicaciones del mundo real escribiendo menos código que con otros frameworks y con un mínimo de configuración. El lenguaje de programación Ruby permite la metaprogramación, de la cual Rails hace uso, lo que resulta en una sintaxis que muchos de sus usuarios encuentran muy legible. Con el libro que tiene en sus manos, ganará una imagen global de cómo se mantienen unidas las aplicaciones Rails. Verá cómo se añade de forma dinámica utilidades a todos los modelos de base de datos, llamados objetos Active Record, recorreremos el proceso de creación de un proyecto sencillo, le mostraremos las que consideramos fundamentales, las que conforman los elementos más importantes y también estudiaremos con algún detalle las migraciones y Ajax. Este libro es para desarrolladores con experiencia pero nuevos en Rails y, posiblemente, en Ruby.ÍndiceContenido Agradecimientos Sobre los autores Introducción ¿A quién va dirigido este libro? Convenciones utilizadas en este libro Código fuente Plataformas Capítulo 1. De cero a cien: presentando a Rails Puntos fuertes de Rails Pongamos Rails en acción Organización El servidor Web Elegir un servidor WEBrick Apache lighttpd Mongrel Otros servidores Web Crear un controlador Ejecutar el controlador Construir una vista Escribir el controlador para la vista Expresiones y Scriptlets Entre líneas ¿Y ahora? Capítulo 2. Principios básicos de Active Records Principios básicos de Active Record Englobar, no mapear Un breve ejemplo El ingrediente secreto Photo Share, una presentación Definir el modelo Configurar Active Record Migraciones de esquemas Clases básicas Active Record Englobar la tabla La consola Rails Atributos Columnas Accesores Identificadores Clases complejas Herencia Composición Comportamiento Localizadores (Finder) Validación Transacciones Avanzando Capítulo 3. Relaciones Active Record belongs_to has_many has_one has_and_belongs_to_many Modelos de unión acts_as_list Árboles Lo que no ha visto Mirando hacia adelante Capítulo 4. Andamiaje Utilizar el método de andamiaje Una lista de fotografías Más metaprogramación Reemplazar el andamiaje El andamiaje es dinámico Pros y contras Generar código de andamiaje Dentro del código generado Lo mejor de los dos mundos Avanzando Capítulo 5. Expandir vistas Vista de conjunto Visualizar fotografías reales Plantillas de vista Presentaciones Establecer la raíz predeterminada Hojas de estilo Categorías jerárquicas Asignar una categoría a una fotografía Dar estilo a los pases de diapositivas Crear sus propias funciones asistente Crear la hoja de estilo Capítulo 6. Ajax Cómo Rails implementa Ajax Reproducir un pase de diapositivas Utilizar arrastrar y soltar para reorganizar diapositivas Arrastre y suelte casi cualquier cosa Filtrado por categorías Capítulo 7. Comprobación Background Test::Unit Comprobaciones en Rails Pruebas de unidad, pruebas funcionales y pruebas de integración Entornos Accesorios Pruebas de unidad Pruebas funcionales Pruebas de integración Pruebas avanzadas ZenTest Selenium Para terminar Apéndice A. Instalar Rails Windows Instant Rails RadRails OS X TextMate y RadRails Linux Apéndice B. Guía rápida de referencia General Documentación Servidores Web con soporte Bases de datos con soporte Entornos de desarrollo integrados (IDEs) Fuente abierta Comercial Editores Depuración Crear una nueva aplicación Rails Comprobación Pruebas de unidad Pruebas funcionales Solicitudes Redireccionamientos Renderizado con plantilla Afirmaciones variables Renderizado de etiquetas específicas Pruebas de integración Más sobre comprobaciones rake Guiones Generadores Plugins RJS (Ruby JavaScript) Active Record Mapeado automatizado Asociaciones Modelos de unión de asociaciones (figura B.3) Validaciones Cálculos: Localizadores Localizadores dinámicos basados en atributos Scope Acts Callbacks Observadores Migración Controladores Métodos de controlador Render Action Parciales Templates Archivos Text Plantilla en línea RJS Cambiar content_type Redireccionamientos Nothing Encaminamiento de URL Filtro Session/Flash Gestión de sesiones Cookies Configuración Lectura Borrado Vistas Plantillas de vista RHTML RXML RJS Asistentes Enlaces Formularios HTML Formulario Campos de texto Área de texto Botón de opción Casilla de verificación Opciones Fecha y hora end_form Tag Presentaciones Parciales Ajax Vincular a acción remota: Callbacks Formularios Ajax Autocompletar campo de texto Campo Observe Formulario Observe periodically_call_remote Configurar su aplicación Configuración de sesiones Almacenar la información en memoria caché Índice alfabético