Inserciones Dinámicas de Notas con AJAX y SJR en Rails
Clase 33 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
¿Cómo integrar comportamiento dinámico utilizando AJAX y SJR?
En el mundo del desarrollo web, el dinamismo es esencial. En Rails, podemos lograrlo usando Server Generated JavaScript Responses (SJR). Este enfoque permite llevar una petición desde nuestro cliente, procesarla en el servidor y devolver un JavaScript que se ejecuta en el cliente, agregando así contenido dinámicamente a nuestro HTML existente. Este ciclo de vida brinda grandes capacidades de interacción dinámica dentro de nuestras páginas web.
¿Cómo estructurar el contenedor de notas en Rails?
-
Modificar la vista existente: Dirígete a
show.html.hamldentro deviews/tasks/show. Allí, estructura el contenedor de notas para facilitar la inserción dinámica..nodes -# Aquí incluyes el contenido previo, pero dentro de un nuevo div -
Agregar más datos a las notas: Incorpora detalles como la fecha de creación y el autor de la nota. Usa métodos provistos por Rails para una mejor presentación, como
time_ago_in_words.%p= time_ago_in_words(node.created_at) + " by " + node.user.email %hr/
¿Cómo reutilizar el fragmento de código?
Para manejar mejor el código, reutiliza fragmentos comunes utilizando parciales en Rails.
-
Crear parciales: Crea un parcial llamado
node.html.erbdentro de un nuevo directorioviews/tasks/nodes. -
Refactorizar: Mueve el código deseado al parcial y asegúrate de pasar correctamente las variables necesarias.
<div class="node"> <p><%= time_ago_in_words(node.created_at) %> by <%= node.user.email %></p> <hr/> </div>
¿Cómo implementar el concepto de SJR en Rails?
-
Configurar el controlador: Asegúrate de que la acción
createen tu controlador renderice el JavaScript adecuado que el cliente necesita.# tasks_controller.rb def create @node = Node.create(node_params) respond_to do |format| format.js end end -
Crear un archivo de plantilla de JavaScript: En
views/tasks/nodes, crea un archivocreate.js.erb.const parentNode = document.querySelector('.nodes-container .nodes'); const newNode = document.createElement('div'); newNode.innerHTML = '<%= j render @node %>'; parentNode.appendChild(newNode); document.querySelector('#node_body').value = ''; window.scrollTo(0, parentNode.scrollHeight);
¿Cómo transformar una petición HTML en una petición AJAX?
Para que el envío de datos a través de AJAX funcione correctamente, debemos especificar que el formulario es remoto:
-
Modificar el formulario: Cambia el formulario en
show.html.hamlpara que use AJAX.= simple_form_for @task, remote: true do |f| = f.input :body = f.button :submit
¡Animemos a los responsables a participar!
Al finalizar, podrías considerar mejorar la funcionalidad asegurando que solo los usuarios autorizados, como los responsables de una tarea, puedan añadir comentarios. Rails te facilita el manejo de autorizaciones utilizando gemas como CanCanCan.
¡Aprovecha esta poderosa funcionalidad para darle un toque dinámico y profesional a tus aplicaciones web! Incluye AJAX y SJR en tu repertorio, y observa cómo tus habilidades de desarrollo web se elevan al siguiente nivel.