Guías de Make it Real
  • Introduction
  • Preparación
    • Conceptos básicos
    • El editor de texto
    • La línea de comandos
    • Git y Github
  • Git
    • Instalación y configuración
    • Conceptos y comandos esenciales
    • Ignorando archivos y carpetas
    • Trabajando con ramas
    • Repositorios remotos
    • Etiquetas
    • Reescribiendo la historia
    • Stashing
    • Github
  • HTML y CSS
    • Introducción a HTML
    • Introducción a CSS
    • Más elementos de HTML
    • Tablas
    • Formularios
    • El modelo de caja en CSS
    • Fondos (backgrounds)
    • Posicionamiento
    • Selectores CSS
    • Bordes, sombras y gradientes
    • Media Queries
    • Unidades en CSS
    • Flexbox
  • Bootstrap 3
    • Primeros pasos
    • Elementos básicos de HTML
    • Componentes
    • La grilla
    • Personalizando Bootstrap
    • Utilizando plantillas
  • Bootstrap 4
    • Primeros pasos
    • Elementos básicos de HTML
    • Componentes
    • La grilla
    • Clases utilitarias
    • Personalizando Bootstrap
  • Ruby
    • Primeros pasos
    • Tipos y operadores
    • Variables y entrada de usuario
    • Condicionales
    • Ciclos
    • Arreglos
    • Más cadenas de texto
    • Hashes
    • Métodos
    • Manipulación de archivos
    • Gemas
  • Programación Orientada a Objetos en Ruby
    • Clases y objetos
    • Métodos y atributos de clase
    • Herencia
    • Módulos
    • Excepciones
  • JavaScript I
    • Primeros pasos
    • Tipos y operadores
    • Variables
    • Condicionales
    • Ciclos
    • Arreglos
    • Más cadenas de texto
    • Funciones
    • Objetos literales
    • Manipulación de archivos
  • JavaScript en el navegador
    • Primeros pasos
    • Manipulando HTML
    • Escuchando eventos
    • Local Storage
    • History API
    • Canvas
    • Notificaciones Web
    • Audio y Video
    • Arrastrar y soltar
    • JSON
    • Realizando peticiones HTTP
  • jQuery
    • Primeros pasos
    • Manipulando HTML
    • Escuchando eventos
    • Plugins
    • Realizando peticiones con AJAX
  • JavaScript II
    • Prototipos
    • Librerías (Node.js)
    • ES6
    • Uso de this (call, apply, bind)
    • Programación funcional
    • Scope, hoisting, closures
    • Programación asincrónica
    • Testing
  • HTTP y Sinatra
    • Primeros pasos con Sinatra
    • El protocolo HTTP
    • Rutas
    • Formularios
    • Cookies y sesión
  • Bases de datos
    • Bases de datos relacionales
    • SQL
    • DDL
    • MongoDB
  • Ruby on Rails I
    • Primeros pasos
    • Arquitectura
    • Rutas
    • Layouts y rendering
    • ActiveRecord - Modelos
    • ActiveRecord - Migraciones
    • ActiveRecord - Validaciones
    • ActiveRecord - Asociaciones
    • ActiveRecord - Scopes
    • ActiveRecord - Callbacks
    • Recursos REST
    • Formularios
    • Autenticación con Devise
    • Sass y Bootstrap
    • Envío de correos
    • Carga de imágenes
    • Seeds
    • Heroku
  • Ruby on Rails II
    • Usando JavaScript (y jQuery) en Rails
    • Testing en Ruby
    • Testing en Rails
    • Creando una Web API
    • Web Sockets
  • Express.js
    • Primeros Pasos
    • El protocolo HTTP
    • Rutas
    • Vistas
    • Middlewares y manejo de errores
    • Formularios
    • Cookies y sesión
  • Express.js II
    • Mongoose
    • Web Sockets
    • Autenticación
    • Envío de correos
    • Cargar imágenes
    • Deployment
    • Testing
    • Creando una Web API
  • React
    • Primeros pasos
    • JSX
    • Componentes
    • Más sobre estado
    • Formularios
    • Peticiones HTTP con Axios
    • React Hooks
    • React Context
    • React Bootstrap
    • React Router
    • Carga de Imágenes
    • Testing
    • Estructura de carpetas
    • Componentes de clase
  • Redux
    • Primeros pasos
    • Action creators
    • Usando la librería react-redux
    • Middlewares
    • Operaciones asincrónicas con redux-thunk
    • Combinando funciones reductoras
    • Testing
    • Redux Tool Kit
  • Algoritmos
    • Describiendo un algoritmo
    • Complejidad (Big-O)
    • Estructuras de datos
    • Recursión
    • Ordenamiento
    • Búsqueda
    • Programación dinámica
  • Python
    • Primeros Pasos
    • Tipos y Variables
    • Funciones
    • Control de Flujo
    • Listas
    • Ciclos
    • Diccionarios, Tuplas y Sets
  • NumPy
    • Primeros Pasos
    • Arreglos
    • Arreglos Multidimensionales
    • Estadística con NumPy
    • Distribución Estadística
  • Pandas
    • Primeros Pasos
    • Inspección y Selección de Datos
    • Modificando Dataframes
    • La Función Lambda
    • Aggregates en Pandas
    • Múltiples Tablas
Powered by GitBook
On this page
  • Instalación
  • CoffeeScript
  • Uso
  • Al final de cada vista
  • En el archivo .js
  • Vistas de JavaScript
  • Turbolinks
  1. Ruby on Rails II

Usando JavaScript (y jQuery) en Rails

PreviousRuby on Rails IINextTesting en Ruby

Last updated 2 years ago

Instalación

jQuery viene incluído por defecto en la versión 5.0.x o inferior de Ruby on Rails.

Desde la versión 5.1 debes instalarlo utilizando la gema o un manejador de paquetes llamado .

La forma más fácil es utilizar la gema. Sin embargo, si quieres utilizar puedes seguir estos pasos:

  1. Instala del siguiente enlace: .

  2. Desde la consola ejecuta yarn install jquery.

  3. Agrega la dependencia en app/assets/javascripts/application.js:

     //= require rails-ujs
     //= require turbolinks
     //= require jquery
     //= require_tree .

CoffeeScript

Por defecto Ruby on Rails utiliza , un lenguaje que Rails convierte automáticamente a JavaScript.

Cada vez que creas un controlador se crea un archivo en app/assets/javascripts con el nombre del controlador y la extensión .coffee.

Si quieres utilizar JavaScript puedes cambiar la extensión del archivo a .js.

Para deshabilitar por completo simplemente remueve la gema coffee-rails del Gemfile.

Uso

Existen varias partes donde puedes escribir tu código JavaScript en Ruby on Rails: al final de cada vista, en el archivo .js de cada controlador o utilizando vistas de JavaScript.

Al final de cada vista

La forma más fácil de utilizar jQuery en tu aplicación es incluir el código JavaScript al final de cada vista. Por ejemplo:

<button class="show-btn">Mostrar alerta</button>

<script>
  $('.show-btn').on('click', function() {
    alert("Esta es una prueba");
  });
</script>

Sin embargo, esta forma no es muy recomendada porque estamos mezclando el código HTML y ERB con el código JavaScript.

En el archivo .js

La forma en que recomendamos incluir el código JavaScript de tu aplicación es en el archivo .js que se crea para cada controlador.

Sin embargo, es importante entender lo siguiente: Ruby on Rails empaqueta todos los archivos .js en un solo archivo y ese archivo solo se carga la primera vez que el usuario entra a la aplicación, lo que presenta varios retos a la hora de escribir tu código JavaScript.

Lo que recomendamos es crear una función constructora en el archivo .js e invocarla desde la vista en la que lo necesitas.

Por ejemplo, imagina que tenemos un controlador ProductsController y necesitamos ubicar un código en la vista index.html.

Primero, en el archivo .js crearíamos una función constructora llamada ProductsView:

function ProductsView() {
  $('.show-btn').on('click', function() {
    alert("Esto es una prueba");
  });
}

Y en la vista la invocaríamos de la siguiente forma:

<button class="show-btn">Mostrar alerta</button>

<script>
  new ProductsView();
</script>

De esa forma sólo se ejecuta el código JavaScript necesario en la vista y no debemos preocuparnos por esperar a que el DOM esté cargado.

Vistas de JavaScript

Rails hace muy fácil hacer llamados AJAX a tu aplicación y actualizar la página sin necesidad de refrescarla utilizando vistas de JavaScript.

Puedes agregarle remote: true a cualquier link_to, button, form_for o form_tag para indicarle a Rails que esto debe ser un llamado AJAX. Por ejemplo:

<%= link_to "Mostrar alerta", products_path, remote: true %>

Y después crear una vista con extensión .js.erb.

Por ejemplo, como en el link anterior estamos llamando products_path, es decir, el index de ProductsControllers, crearíamos una vista app/views/products/index.js.erb con contenido JavaScript:

alert("Hola Mundo!");

// borremos todos los párrafos
$('p').remove();

Turbolinks

es un lenguaje muy interesante que está por fuera del alcance del curso pero que puedes investigar por tu propia cuenta iniciando por la .

En aprenderás a utilizar esta técnica para mostrar formularios dentro de modales de Bootstrap.

jquery-rails
Yarn
Yarn
Yarn
https://yarnpkg.com/en/docs/install
CoffeeScript
CoffeeScript
CoffeeScript
página oficial
este post de Make it Real
https://blog.makeitreal.camp/turbolinks/