
Una de las muchas ventajas que tiene ruby on rails es que junta todos los archivos de javascript dentro de la carpeta de assets en uno solo, haciendo mucho más rápida la carga y transferencia cuando se encuentra en un entorno de producción. La desventaja de juntar todos los archivos es que en algunos casos podríamos querer que un javascript se ejecute únicamente en una página específica, o sea exclusivamente para un controller y para una página específica. Hay varias formas de resolver este problema, pero hasta el momento la más sencilla que he encontrado es ocupando la gema LoadJS https://github.com/guidomb/loadjs Para ocuparla basta con agregar la gema al gemfile
gem 'loadjs'
Luego realizar un bundle y reiniciar el servidor. El siguiente paso es cambiar la linea de código del layout (o layouts) donde está la etiqueta body, por la siguiente:
<body data-controller="<%= controller.controller_path %>" data-action="<%= controller.action_name %>">
Dentro de asseets/javascript/application.js hay que cargar loadjs
//= require loadjs
y finalmente, el javascript que queramos que se ejecute específicamente en un vista y una acción, tenemos que envolverlo con
load("foo#bar", function (controller, action) { alert("Hello World!"); });
Obviamente cambiando foo#bar por el controller#accion correspondientes. Existe sólo un gran contra en esta solución, que expone el nombre de los controller y de las acciones en el código, no es grave pero es bueno que estés consciente de la información que estas exponiendo.
Advertencia: Turbolinks no será tu amigo, la gema de jquery-turbolink te ayudará en el proceso:
- ¿Por qué Twitter fue hecho en Ruby on Rails? - abril 15, 2016
- Construyendo una landing page en Ruby on Rails desde cero. - febrero 11, 2016
- Pair programming (de a dos es mejor) - febrero 11, 2016
- Creando un wordpress en hostinger - abril 18, 2015
- Login con facebook en rails 4.1 y 4.2 - febrero 3, 2015
- EL ASSET PATH DE RAILS - enero 26, 2015
- Entendiendo los objetos en Ruby - enero 21, 2015
- La verdadera educación Tecnologica - enero 14, 2015
- Kit Digital del gobierno de Chile - enero 14, 2015
- ¿Como diseñar un buen Layout para tu página web? - enero 13, 2015
Deja un comentario