Creación de Formularios Dinámicos con SimpleForm y Haml en Rails
Clase 15 de 36 • Curso de Introducción a Ruby on Rails
Contenido del curso
- 6

Arquitectura MVC y Flujo de Peticiones en Rails
07:22 - 7

Creación y Configuración de Aplicaciones Web con Ruby on Rails
11:18 - 8

Creación de Rutas y Controladores en Ruby on Rails
10:15 - 9

Creación de Modelos y Migraciones en Ruby on Rails
13:12 - 10

Gestión de Credenciales Seguras en Ruby on Rails
11:57 - 11

Gestión de Assets y Layouts en Rails: Asset Pipeline y Webpacker
12:31 - 12

Uso del Generador Scaffold en Ruby on Rails
10:51 - 13

Migraciones y Consistencia de Modelos en Rails
05:57 - 14

Migración de Plantillas ERB a Haml en Ruby on Rails
08:47 - 15

Creación de Formularios Dinámicos con SimpleForm y Haml en Rails
12:19 - 16

Internacionalización de Aplicaciones Rails con i18n y i18n-tasks
09:29 - 17

Debugging en Ruby on Rails: Uso de Bybug y Pry
09:03
- 18

Desarrollo de un Sistema de Gestión de Tareas con Ruby on Rails
05:35 - 19

Diseño de Modelos de Datos para un Organizador de Tareas
05:46 - 20

Creación de Scaffolds y Modelos en Rails con SimpleFrame y Bootstrap
10:08 - 21

Internacionalización de Formularios en Rails con i18n y SimpleForm
11:03 - 22

Validaciones de Modelos en Ruby on Rails
10:42
- 23

Autenticación de Usuarios con Devise en Rails
11:42 - 24

Migración de Llave Foránea: Enlazar Tarea con Usuario en Rails
05:46 - 25

Integración Visual y Estructural en Rails: Usuario, Tarea y Participante
09:54 - 26

Manejo de Formularios Anidados con Cocoon en Rails
12:25 - 27

Formularios Dinámicos en Rails con Cocoon y Validaciones de Unicidad
09:36 - 28

Permisos y Accesos con KanKan en Aplicaciones Rails
14:13
- 29

Callbacks en Controladores y Modelos en Rails
08:59 - 30
Automatización de Inserción de Datos en Rails con db:seed
07:38 - 31

Envío de Correos con ActionMailer en Rails
13:25 - 32

Creación de notas dinámicas en tareas con Ruby on Rails
17:08 - 33

Inserciones Dinámicas de Notas con AJAX y SJR en Rails
09:12 - 34
Mejora de Interfaces con Bootstrap en Aplicaciones Rails
16:19
¿Qué es SimpleForm y por qué es relevante?
SimpleForm es una gema de Ruby que proporciona un enfoque simplificado y eficiente para construir formularios HTML en aplicaciones Rails. Al igual que la popular gema Hamel, SimpleForm agiliza el desarrollo al integrar los formularios con la estructura de modelo, vista y controlador de Rails. Esta herramienta permite reducir la cantidad de código necesario para crear formularios, mejorando así la legibilidad y mantenimiento del mismo.
¿Cómo se instala SimpleForm?
Para instalar SimpleForm en tu proyecto Rails, debes seguir estos pasos:
- Agregar la gema al Gemfile: Incluye la línea
gem 'simple_form'en tu archivo Gemfile. - Ejecutar el bundle install: Ve a la consola y detén el servidor si está corriendo. Ejecuta el comando
bundle installo su aliasbi. - Configuración inicial: Utiliza el comando
rails generate simple_form:installen la consola. Esto generará archivos de configuración y plantillas necesarias para su funcionamiento.
Aquellos habituados a trabajar con HTML y Rails encontrarán que SimpleForm facilita la integración de formularios avanzados con menos esfuerzo.
¿Cómo genera scaffolds SimpleForm?
Al generar un nuevo scaffold utilizando SimpleForm y Hamel, el proceso difiere del enfoque tradicional con ERB. Un scaffold es un conjunto de archivos que ayudan a modelar, controlar y visualizar un elemento en la aplicación Rails:
- Crear un nuevo modelo: Por ejemplo, al crear un modelo
User, puedes definir atributos tales comofirst_name,last_name,address, yabout_me, cada uno con su tipo de datos correspondiente.
rails generate scaffold User first_name:string last_name:string address:string about_me:text phone:integer
- Utiliza Hamel en lugar de ERB: Las vistas generadas adoptarán el lenguaje de plantillas Hamel que reducen el número de líneas de código significativamente. Mientras un archivo ERB podría tener unas 42 líneas, el mismo archivo en Hamel podría tener tan solo 14.
¿Cuáles son las ventajas de utilizar Hamel con SimpleForm?
Hamel ofrece una estructura más limpia y legible en comparación con ERB:
- Elimina la necesidad de cerrar etiquetas HTML, ya que emplea la indentación.
- Simplifica la sintaxis para clases y etiquetas comunes, como
div, mejorando la claridad.
Un ejemplo sencillo de cómo una etiqueta div se estructura en Hamel elimina el porcentaje de apertura para clases, optimizando la legibilidad.
Ejemplo de código Hamel vs. ERB
ERB HTML
<div class="my-class">
<h1>Título</h1>
</div>
Hamel
.my-class
%h1 Título
¿Cómo se personalizan los formularios con SimpleForm?
SimpleForm no solo simplifica la creación de formularios sino que permite personalizaciones avanzadas:
-
Etiquetas personalizadas: Cambiar una etiqueta es tan simple como añadir el parámetro
label.= f.input :first_name, label: "Nombres" -
Tipos de campo personalizados: Puedes definir diferentes tipos de input, como
textotextarea.= f.input :about_me, as: :text
Rails reconoce automáticamente los tipos de datos de los atributos, por lo que un campo about_me definido como text se renderiza automáticamente como textarea.
¿Cuáles son las aplicaciones prácticas de SimpleForm?
SimpleForm es especialmente útil cuando se requiere:
- Interacción intensiva con datos: Interfaces como selección de países o listas de opciones donde simplifica la creación de selectores.
- Formularios complejos y dinámicos: Proporciona estructuras enriquecidas, segura integración con el modelo e interacción mejorada.
La flexibilidad que SimpleForm ofrece en el diseño de formularios hace más eficiente el desarrollo en Rails. Te animo a que integres Hamel y SimpleForm juntos para aprovechar al máximo sus beneficios. Esto no solo mejorará tu productividad, sino que también te permitirá crear aplicaciones más robustas y adaptables.