 
				                                
                                    
                
                	                                				
				
                            
            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.