2011-12-28 18 views
6

Acabo de notar this error y necesito actualizar mi proyecto de Rails 3.1 (no estoy usando canalización de activos) a jQuery 1.7+.¿Cómo puedo actualizar a jQuery 1.7+ utilizando Rails 3?

Veo que ya hay bibliotecas jQuery en mi carpeta javascripts (public/javascripts). Si no se copia la nueva biblioteca de jQuery allí manualmente, ¿hay algún comentario para reemplazar el archivo de JavaScript con Ruby?

+1

¿Qué pasa con la copia de una nueva versión de la librería jQuery en el directorio 'pública/javascripts'? Eso es lo que hago cuando quiero actualizar uno de mis javascript en un proyecto de rieles. – Batkins

+0

No sé casi nada sobre Rails, pero si es posible, intente encontrar una forma de conectarse externamente al archivo [jquery-latest.js] (http://code.jquery.com/jquery-latest.js) de jQuery. Eso contiene la última revisión de jQuery disponible. –

Respuesta

13

En Rails 3.1, jQuery es administrado por jquery-rails gem. Puede actualizar su versión de jQuery utilizando una versión más nueva de jquery-rails. Es muy fácil de hacer Aquí hay una explicación completa.

Consulte su versión existente ejecutando gem list desde el directorio raíz del proyecto. Probablemente verá algo como esto:

... 
i18n (0.6.0) 
jquery-rails (1.0.16, 1.0.14, 1.0.13) 
json (1.6.1) 
... 

La gema jquery-rails utiliza jQuery 1.7+ en versiones 1.0.17+. Al escribir estas líneas, la última versión de la gema para Rails 3.1 es 1.0.19, que usa jQuery 1.7.1. ¡Eso suena como lo que quieres!

Así que no necesita dejar nada en su carpeta /javascripts. En su lugar, especifique la versión más nueva de la gema en su Gemfile. Aquí es lo que tengo en la mía:

gem "jquery-rails", "~>1.0.19" 

El ~> carácter divertido dice bundler encontrar una versión de la joya que es al menos lo que se especifica (1.0.19 aquí), y cualquier versión de menor importancia posteriores, pero no el próxima versión principal (que es 2.0.0 para esta joya, que solo admite Rails 3.2+).

Luego, desde la raíz del proyecto, ejecute bundle y la versión especificada se configurará para usted. Reinicie su aplicación Rails, vuelva a cargar la página, y debería poder verificar que ahora está tratando con jQuery 1.7.1.

¡Avísame cómo te va!

Saludos.

+2

'bundle show jquery-rails' es una forma más rápida de verificar qué versión de la gema ha instalado. – blushrt

+0

Esto no funciona para mí en absoluto. Estaba ejecutando 2.0.1 y lo cambié a 2.1.0, desinstalé la antigua gema e instalé la nueva. jQuery todavía se está cargando a 1.8 cuando debería ser 1.10. – Aristata

0

He actualizado mi versión jquery-rails joya a la versión 3.1.2 (tipo: bundle show jquery-rails para ver la versión actual jquery-rails, o gem list para ver todas las gemas)

Sin embargo mi página web se sigue utilizando el obsoleto jquery versión 1.3. Para verificar qué versión está usando, vaya a su archivo jquery.js que se encuentra en la carpeta assets/javascripts, la versión debe especificarse allí. Por supuesto, con el fin de utilizar jQuery también hay que incluir en sus jquery.js activos/javascript/archivo application.js así, añadiendo la siguiente línea:

//= require jquery 

Y en el caso de que también tienen otra bibliotecas JS como prototipo, por ejemplo, que sin duda va a querer echa un vistazo a este enlace, así: jQuery- Avoiding Conflicts with Other Libraries

de todos modos volver al punto, según la recomendación de ZZG arriba, abrí el enlace que suministra: Latest Jquery y literalmente copiado y pegué el contenido de esa página web en mi archivo jquery.js. Después de reiniciar el servidor y actualizar mi página web, mi jquery estaba usando la última versión. Mi jQuery funcionaba localmente en mi env env, pero no estaba trabajando en la producción inmediatamente después (tratando de resolver eso ahora mismo).

Por último, una cosa más que puede ser útil saber, es que siempre puedes ver qué versión está usando tu aplicación de rieles (en tu entorno de desarrollo local) haciendo clic derecho en la página de la aplicación Rails y seleccionando "Ver página fuente", que debe encontrar un enlace como este:

<script data-turbolinks-track="false" src="/assets/jquery.js?body=1"></script>

al hacer clic en él se mostrará el contenido de su archivo jquery.js que especifica la versión (esto no va a trabajar en la producción desde la tubería de activos comprime todos archivos javascript en un archivo, es decir, application.js)

1

En Rails 4 You c una actualización jQuery con el siguiente manera

en application.js manifiesta

//= require jquery2 //for jquery 2 

//= require jquery3 //for jquery 3 
Cuestiones relacionadas