• Inspiración
  • Tutoriales
  • Talleres
    • Bootcamp de Desafio Latam, conviértete en desarrollador web
  • Oportunidades de trabajo

En1Mes

  • Talleres presenciales de rails
  • Bootcamp de programación

Como cargar un javascript específico en un controller de rails

javascript

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:

 

Ago 23, 2014Gonzalo Sánchez
Summary
Article Name
Como cargar en rails un javascript especifico en un controller
Author
Gonzalo Sánchez
Share Button
  • El Autor
  • Últimos Posts

About Gonzalo Sánchez

Emprendedor lean, Ingeniero civil informático dedicado al desarrollo de una mejor web con ruby on rails. Fanático de los números y las métricas y por sobre todo fundador de en1mes.
  • ¿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
3 years ago Ruby, TutorialesJavascript, Ruby on Rails1,985
AdequateRecord Pro™ una razón de peso para cambiarse a Rails 4.2 Las nuevas funcionalidades en WordPress 4
You Might Also Like
 
ASESINANDO TU STARTUP CON JAVASCRIPT.
 
Cargar el formulario de login de devise desde otra vista

Deja un comentario Cancelar respuesta

Últimos Tweets

  • RT @DesafioLatam: ¿Estás en Chile? App clave para este 18 creada por alumnos de la academia #protagonistas #coding #javascript #ruby https:…
  • RT @christianpino: En @litoralpressTV entrevista con @diegoiag de @DesafioLatam sobre ventajas del TeleTrabajo y encuentro #9punto5 🎥▶️htt…
  • RT @christianpino: En breve estará en @litoralpressTV la entrevista con @diegoiag de @DesafioLatam sobre las ventajas del TeleTrabajo y el…
  • RT @DesafioLatam: Agenda ya charla que viene remecer mundo educación y tecnología, #9punto5 #coding #oportunidades #remoto https://t.co/ql0…
Tags
Ruby on Railsemprendimientos digitalesTutorialesDiseñoHerramientashtml5rubyWordpressBases de datosLanding PagehackathonInspiraciónTalleresTipsHerokuNitrousPáginas WebphpEventosRailsGirlssmartphonesCSSemprendimientos socialesprogramaciónCreatividademprendimientosCitas inspiradorasMySQLlenguajes de programaciónGemasJavascriptEducaciónHostingdiseño responsivoBenchmarksExperimentosmetodologíasFrameworkstecnologíaInspector de ElementosHackatonTwitterredes socialesUsabilidadlean startup
Interesado en otros tipos de emprendimiento?

Quieres aprender a importar y exportar productos a todo el mundo? entra aquí

No te pierdas ningún artículo.

2016 © En 1 Mes