jQuery con Rails 3
Viernes, Febrero 12th, 2010Una de las características nuevas en Rails 3 es que permite de manera más sencilla poder definir los diferentes componentes de nuestra aplicación. Por ejemplo, ya no tendremos que hacer tanta magia para poder utilizar otra que no sea Prototype como librería Javascript, si no que ahora igual podremos utilizar jQuery con un poquito de configuración.
Lo primero que tendremos que hacer es con respecto al Javascript no obstructivo (UJS por sus siglas en inglés). El equipo de desarrollo de Rails 3 ha hecho un gran trabajo al reemplazar todo el código JS en línea con UJS y XHTML semántico; el detalle es que sigue siendo Prototype la librería por default
Para cambiar eso debes descargar y reemplazar el archivo public/javascript/rails.js desde github en la página del proyecto de jQuery UJS.
El siguiente paso sería la sentencia javascript_include_tag a todos nuestros layouts. Si ya has usado jQuery con Rails anteriormente, debes haber hecho algo como esto:
javascript_include_tag 'jquery', 'jquery-ui', 'rails', 'application'
Pero si tienes más de un layout y quieres adherirte al principio DRY (Don’t repeat yourself, no te repitas a ti mismo), entonces lo ideal sería poder hacer algo como lo que se hace con Prototype:
javascript_include_tag :defaults
Para lograr esto, es necesario modificar el archivo config/application.rb debes agregar una expansión Javascript como la siguiente
ActionView::Helpers::AssetTagHelper.register_javascript_expansion \ :jquery => %w/jquery jquery-ui rails application
De esta manera, podremos incluir nuestras librerías con la siguiente línea:
javascript_include_tag :jquery
Lo cual es mucho más sencillo y rápido.
En artículos siguientes seguiremos explorando las características nuevas de Rails 3. Manténganse en contacto.
