2011-12-28 9 views
6

Ho appena notato this error e ho bisogno di aggiornare il mio progetto Rails 3.1 (non sto usando la pipeline delle risorse) a jQuery 1.7+.Come posso aggiornare a jQuery 1.7+ utilizzando Rails 3?

Vedo che ci sono già librerie jQuery nella mia cartella javascripts (public/javascripts). In mancanza di copiare manualmente la nuova libreria jQuery, c'è un commento per sostituire il file JavaScript usando Ruby?

+1

Cosa c'è di sbagliato con la copia di una nuova versione della libreria jQuery nella directory 'pubblico/javascripts'? Questo è quello che faccio quando voglio aggiornare uno dei miei javascript in un progetto di rotaie. – Batkins

+0

Non conosco quasi nulla di Rails, ma se possibile, prova a trovare un modo per connettersi esternamente al file [jquery-latest.js] (http://code.jquery.com/jquery-latest.js) di jQuery. Questo contiene l'ultima revisione di jQuery disponibile. –

risposta

13

In Rails 3.1, jQuery è gestito dallo jquery-rails gem. Puoi aggiornare la tua versione jQuery usando una versione più recente di jquery-rails. È molto facile da fare Ecco una spiegazione completa.

Vedere la versione esistente eseguendo gem list dalla directory principale del progetto. Probabilmente vedrete qualcosa di simile:

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

Il jquery-rails gemma utilizza jQuery 1.7+ nelle versioni 1.0.17+. Al momento della stesura di questo articolo, l'ultima versione della gemma per Rails 3.1 è 1.0.19, che utilizza jQuery 1.7.1. Sembra proprio quello che vuoi!

Quindi non è necessario rilasciare nulla nella cartella /javascripts. Invece, specifica la versione più recente della gemma nel tuo Gemfile. Ecco quello che ho nella mia:

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

Il ~> buffo personaggio dice Bundler per trovare una versione del gioiello che è almeno ciò che si specifica (1.0.19 qui), ed eventuali successive versioni minori, ma non il prossima major release (che è 2.0.0 per questa gemma, supporta solo Rails 3.2+).

Quindi, dalla radice del progetto, eseguire bundle e la versione specificata verrà impostata per l'utente. Riavvia la tua app Rails, ricarica la pagina e dovresti essere in grado di verificare che ora stai affrontando jQuery 1.7.1.

Fammi sapere come va!

Cheers.

+2

'bundle show jquery-rails' è un modo più veloce per verificare quale versione della gemma è stata installata. – blushrt

+0

Questo non funziona affatto per me. Stavo eseguendo 2.0.1 e l'ho cambiato in 2.1.0, disinstallato il vecchio gioiello e installato quello nuovo. jQuery viene ancora caricato a 1.8 quando dovrebbe essere 1.10. – Aristata

0

ho aggiornato la mia versione jquery-rails gemma alla versione 3.1.2 (Tipo: bundle show jquery-rails per vedere la versione corrente jquery-rails, o gem list per vedere tutte le gemme)

Tuttavia la mia pagina web è stata ancora utilizzando l'obsoleto jquery versione 1.3. Per verificare quale versione stai usando, vai al tuo file jquery.js che risiede nella tua cartella assets/javascript, la versione dovrebbe essere specificata lì. Naturalmente, al fine di utilizzare jQuery si hanno anche per includere jquery.js nelle vostre attività/javascript/application.js file come pure, aggiungendo la seguente riga:

//= require jquery 

E nel caso in cui si hanno anche altri librerie JS come prototipo per esempio, sarà sicuramente voler controllare questo link così: jQuery- Avoiding Conflicts with Other Libraries

Comunque tornando al punto, come da raccomandazione di zzg sopra, ho aperto il collegamento che ha fornito: Latest Jquery e letteralmente copiato e incollato il contenuto di tale pagina web nel mio file jquery.js. Dopo aver riavviato il server e aggiornato la mia pagina Web, il mio jQuery utilizzava la versione più recente. Il mio jQuery stava lavorando localmente sul mio dev env, ma non lavorava immediatamente alla produzione (cercando di capirlo subito).

Infine, un'altra cosa che potrebbe essere utile sapere è che si può sempre vedere quale versione viene utilizzata dall'app per rotaie (nel proprio dev env locale) facendo clic con il pulsante destro sulla pagina Web dell'app per rotaie e scegliendo "Visualizza pagina" Source", si dovrebbe trovare un link come questo:

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

Facendo clic su di esso mostrerà il contenuto del file jquery.js che specifica la versione (questo non funzionerà sulla produzione dal risparmio gasdotto comprime tutti file javascript in un unico file, ovvero application.js)

1

In Rails 4 You c un jquery aggiornamento con i seguenti modo

in application.js manifesta

//= require jquery2 //for jquery 2 

//= require jquery3 //for jquery 3 
Problemi correlati