2012-01-08 10 views
5

Sto utilizzando Rails 3.1 e ho riscontrato un problema con la libreria jQueryUI. Qui è la mia application.js di file:Rails 3.1, l'interfaccia utente jQuery non viene caricata

//= require jquery 
//= require jquery-ui 
//= require jquery_ujs 
// Loads all Bootstrap javascripts 
//= require bootstrap 
//= require rails.validations 

//= require_tree . 

Si carica il file "jQuery UI" nel browser, ma qualunque cosa io uso correlato ad esso mostra questo errore:

TypeError: Object function (a,b){return new d.fn.init(a,b,g)} has no method 'dialog' 

risposta

2

Dopo ore di lotta con il problema, ho finalmente rimosso //= require jquery-ui da application.js e aggiunto il nuovo file jQuery UI, e ora tutto funziona bene. Il mio nuovo file attività è:

//= require jquery 
//= require jquery/jquery-ui 
//= require jquery_ujs 
// Loads all Bootstrap javascripts 
//= require bootstrap 
//= require rails.validations 

//= require_tree . 

jquery è una sottocartella nella mia cartella javascripts.

3

ho avuto gli stessi problemi, application.js si presentava così:

//= require jquery 
//= require jquery_ujs 
//= require jquery-ui 

In modalità di sviluppo, sembra /assets/application.js conteneva una versione di jQuery in bundle con UJS, e, quando aggiunta alla pagina, è stato come questo :

<script src="jquery"></script> 
<script src="jquery_ujs"></script> 
<script src="jquery-ui"></script> 
<script src="application.js"></script> 

L'ultimo file sovrascriveva i primi tre file. Ho inserito:

//= require_self 
//= require jquery-ui 

e funziona correttamente.

La cosa divertente è, application.js contiene solo require righe, senza jQuery o ujs.

+1

Non so perché/come/quando ho rimosso 'require_self' per cominciare, ma aggiungendolo in cima è stato risolto il problema. Grazie! – umezo

2

Potrebbe aver precompilato le risorse in un punto precedente. Provare a rimuovere tutto sotto public/assets.