RUBY, SAM / THOMAS, DAVE / HEINEMEIER HANSSON, DAVID
Prefacio
1. Introducción
1.1. Rails es sencillo
1.2. Encontrar la solución
1.3. Convenciones
1.4. Código fuente
1.5. Información importante sobre las versiones Rails
Parte I. Para comenzar
2. Arquitectura de las aplicaciones Rails
2.1. Modelos, vistas y controladores
2.2. Active Record: soporte del modelo Rails
Programación centrada en la base de datos
Mapeo de objetos relacionales
Active Record
2.3. Action pack: el visor y el controlador
Soporte de vista
¡Y el controlador!
3. Instalación de Rails
3.1. La lista de la compra
3.2. Instalación en Windows
3.3. Instalación en Mac OS X
3.4. Instalación en Linux
3.5. Selección de versión Rails
3.6. Entornos de desarrollo
La línea de comandos
Control de versión
Editores
El escritorio
3.7. Rails y las bases de datos
3.8. Mantener la actualización
3.9. Rails y los ISP
4. Recompensa inmediata
4.1. Crear una aplicación nueva
4.2. ¡Hola Rails!
Rails y las solicitudes URL
Nuestra primera acción
Dinamizando
Contenido dinámico
Añadir la hora
La historia hasta el momento
4.3. Vincular páginas
4.4. Lo que acabamos de hacer
Hora de jugar
Limpieza
Parte II. Crear una aplicación
5. La aplicación Depot
5.1. Diseño gradual
5.2. Lo que hace Depot
Casos de uso
Diagramas de flujo
Datos
5.3. Vamos a codificar
6. Tarea A: Mantenimiento del producto
6.1. Iteración A1: ejecutar
Crear una aplicación Rails
Creación de la base de datos
Configurar la aplicación
Probar la configuración
6.2. Crear el modelo de productos y la aplicación de mantenimiento
Ejecutar la aplicación de mantenimiento
6.3. Iteración A2: añadir una columna ausente
6.4. Iteración A3: ¡validación!
6.5. Iteración A4: hacer listas más atractivas
Lo que hemos hecho
Hora de jugar
7. Tarea B: Visualización del catálogo
7.1. Iteración B1: crear un listado de catálogo
7.2. Iteración B2: añadir un diseño de página
7.3. Iteración B3: utilizar un auxiliar para dar formato al precio
7.4. Iteración B4: vincular al carrito
Lo que acabamos de hacer
Hora de jugar
8. Tarea C: Creación del carrito
8.1. Sesiones
Colocar sesiones en la base de datos
Sesiones y buscadores
Carritos y sesiones
8.2. Iteración C1: crear el carrito
8.3. Iteración C2: crear un carrito más inteligente
La moraleja del cuento
8.4. Iteración C3: gestión de errores
¡El flash!
8.5. Iteración C4: terminar el carrito
Lo que hemos hecho
Hora de jugar
9. Tarea D: Añadir un poco de AJAX
9.1. Iteración D1: mover el carrito
Plantillas parciales
Cambiar el flujo
9.2. Iteración D2: crear un carrito AJAX
Resolución de problemas
El cliente nunca está satisfecho
9.3. Iteración D3: destacar los cambios
9.4. Iteración D4: ocultar un carrito vacío
Métodos auxiliares
9.5. Iteración D5: degradar si está deshabilitado Javascript
9.6. Lo que acabamos de hacer
Hora de jugar
10. Tarea E: ¡Cajero!
10.1. Iteración E1: capturar una petición
Relaciones entre modelos
Crear un formulario de captura de petición
Capturar los detalles de la petición
Última modificación AJAX
Lo que acabamos de hacer
Hora de jugar
11. Tarea F: Administración
11.1. Iteración F1: añadir usuarios
Administración de usuarios
11.2. Iteración F2: Inicio de sesión
11.3. Iteración F3: limitar el acceso
11.4. Iteración F4: añadir una barra lateral y más administración
Sale el último administrador
Cerrar la sesión
Lo que hemos hecho
Hora de jugar
12. Tarea G: El último cambio minúsculo
12.1. Generar el suministro de datos XML
Navegación por las tablas
Crear una interfaz REST
Respuesta adecuada
Otra forma de solicitar XML
Generar automáticamente el XML
Suministro Atom
¡Y también JSON!
12.2. Concluyendo
Hora de jugar
13. Tarea I: Internacionalización
13.1. Iteración I1: habilitar la traducción
13.2. Iteración I2: analizar estrategias del contenido
Lo que hemos hecho
Hora de jugar
14. Tarea T: Pruebas
14.1. Pruebas integradas
14.2. Pruebas de unidad de modelos
Una base de datos sólo para las pruebas
Una prueba de unidad real
Fixtures de prueba
Usar datos fixture
Probar el carrito
Soporte de pruebas de unidad
14.3. Pruebas funcionales de los controladores
Administrador
Índice: solamente para administradores
Fixtures dinámicos
Inicio de sesión
Utilidades prácticas de las pruebas funcionales
Métodos de petición HTTP
Afirmaciones
Variables
Métodos auxiliares de pruebas funcionales
Probando el contenido de la respuesta
Selectores
Selectores simples
Selectores encadenados
Pseudoclases
Afirmaciones de respuesta
Anidar afirmaciones de selección
Afirmaciones adicionales
14.4. Pruebas de integración de las aplicaciones
Pruebas de nivel aún superior
Soporte de pruebas de integración
Métodos prácticos de pruebas de integración
14.5. Pruebas de rendimiento
Perfil y evaluación
14.6. Utilizar objetos mock
Stubs frente a mock
Lo que hemos hecho
Parte III. Trabajar con la estructura de Rails
15. Rails en detalle
15.1. ¿Entonces, dónde está Rails?
15.2. Estructura del directorio
app/ y test/
doc/
lib/
Tareas Rake
log/
public/
script/
tmp/
vendor/
Utilizar Edge Rails
15.3. Configuración de Rails
Entornos de ejecución
Configurar las conexiones de la base de datos
Entornos
La ruta de carga
Parámetros de configuración
15.4. Convenciones de nomenclatura
Mayúsculas y minúsculas, subrayados y plurales
Agrupar controladores en módulos
15.5. Registro en Rails
15.6. Pistas de depuración
15.7. ¿Qué es lo siguiente?
16. Active Support
16.1. Ampliaciones disponibles generales
16.2. Enumeraciones y arrays
16.3. Hashes
16.4. Extensiones de cadena
Codificar nuestras normas para dar un estilo propio
16.5. Extensiones a los números
16.6. Extensiones de hora y fecha
16.7. Una extensión a los símbolos Ruby
16.8. with_options
16.9. Soporte Unicode
La aplicación de nombres Unicode
17. Migraciones
17.1. Crear y ejecutar migraciones
Ejecutar migraciones
17.2. Anatomía de una migración
Tipos de columnas
Renombrar columnas
Cambiar columnas
17.3. Administrar tablas
Opciones para crear tablas
Renombrar tablas
Problemas con rename_table
Definición de índices
Claves primarias
Tablas sin clave primaria
17.4. Migraciones de datos
Cargar datos con migraciones
Cargar datos desde los fixtures
Migrar datos con migraciones
17.5. Migraciones avanzadas
Utilizar SQL nativa
Extender las migraciones
Mensajes diseñados y referencias
17.6. Cuando las migraciones van mal
17.7. Manipulación del esquema fuera de las migraciones
17.8. Administrar las migraciones
18. Active Record parte I: Los fundamentos
18.1. Tablas y clases
18.2. Columnas y
Ruby on Rails es una estructura Web MVC (Model-View-Controller) completa que le ayudará a crear aplicaciones Web de alta calidad, dedicando mucho menos tiempo del que imagina. Concéntrese en la aplicación, y Rails se ocupará de los detalles. Incluso puede escribir aplicaciones que admiten JavaScript sin tener que redactar una sola línea de código.
Este libro comienza con un recorrido paso a paso por la creación de una aplicación real, para luego profundizar en el análisis de las características integradas de Rails. Por último, ofrece un enfoque en los recursos de Rails y descubre los métodos más prácticos que utilizan actualmente los desarrolladores. Este manual le enseña, entre otros aspectos, a aprender cómo Rails elimina configuraciones tediosas y tareas de administración local, cómo incorporar a sus aplicaciones Ajax, REST, servicios Web y control de correo electrónico, etc.