2013-06-11 19 views
17

Ho appena effettuato una nuova installazione e sono riuscito ad accedere alla pagina dei binari predefinita su localhost: 3000, ma quando ho installato la gemma activeadmin avevo un problema durante l'accesso/admin/e ricevuto il seguente errore su/admin/login (Sono stato reindirizzato, ma questo è quello che ho visto sulla pagina :)Ruby on Rails: "Impossibile trovare il file 'jquery-ui'"

Cosa devo fare? Ho fatto l'aggiornamento del pacchetto e non è stato risolto.

Ecco il messaggio di errore parziale:

Pignoni :: FileNotFound in Active_admin/testamentaria/sessions # nuove

Visualizzazione /usr/local/rvm/gems/ruby-1.9.3-p392/ gemme/activeadmin-> 0.6.0/app/views/layout/active_admin_logged_out.html.erb dove la linea # 12 sollevato:

non riusciva a trovare il file 'jquery-ui' (in// local/rvm usr/gems/ruby-1.9.3-p392/gems/activeadmin-> 0.6.0/app/assets/javascripts/active_admin/base.js: 2)

qui è il mio file di gemma:

source 'https://rubygems.org' 

gem 'rails', '3.2.12' 

# Bundle edge Rails instead: 
# gem 'rails', :git => 'git://github.com/rails/rails.git' 

gem 'sqlite3' 


# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '~> 3.2.3' 
    gem 'coffee-rails', '~> 3.2.1' 

    # See https://github.com/sstephenson/execjs#readme for more supported runtimes 
    # gem 'therubyracer', :platforms => :ruby 

    gem 'uglifier', '>= 1.0.3' 
end 

gem 'jquery-rails' 
gem 'activeadmin' 

# To use ActiveModel has_secure_password 
# gem 'bcrypt-ruby', '~> 3.0.0' 

# To use Jbuilder templates for JSON 
# gem 'jbuilder' 

# Use unicorn as the app server 
# gem 'unicorn' 

# Deploy with Capistrano 
# gem 'capistrano' 

# To use debugger 
# gem 'debugger' 
+2

mostra il tuo file application.js – uday

+1

@uDaY: active_admin usa il proprio manifest - il file application.js non dovrebbe importare qui. – PinnyM

risposta

29

Questa è una known issue a causa della dipendenza jquery-rails l'abbandono del supporto jQuery-UI. La soluzione per il momento sembra essere quello di forzare il jquery-rails gemma per caricare utilizzando la versione 2.3.0:

gem 'jquery-rails', '~> 2.3.0' 

Un problema connesso a causa di questo: Debug jQueryUI Versions in Rails.

+0

Sì, grazie mille! – tjcss

+4

Questo non ha risolto il mio errore che è lo stesso di sopra – markhorrocks

+0

@markhorrocks: Quindi probabilmente non è la stessa causa - non esitate a fare una domanda per quanto riguarda il problema che stai vivendo – PinnyM

4

Vorrei suggerire di aggiornare il vostro application.js da: //= require jquery_ui a //= require jquery.ui.all come soluzione preferibile (piuttosto che utilizzare una versione obsoleta della gemma).

+0

Come indicato dall'OP, questo si verifica all'interno dello spazio dei nomi/admin a causa del manifest in active_admin. La modifica di application.js non sarà di aiuto: dovrai copiare sull'albero di asset active_admin e apportare le modifiche lì. Questo è abbastanza intrusivo e piuttosto un mal di testa da mantenere per gli aggiornamenti. – PinnyM

2

L'aggiunta della gemma jquery-ui-rails ti fornirà anche il supporto jquery.ui.

gem 'jquery-ui-rails' 

Nei vostri application.js e file application.css, è possibile aggiungere tutti i moduli

jquery.ui.all 

o solo quelle che ti servono, ad esempio:

jquery.ui.slider 
+0

Corretto - C'è una nuova sintassi per includere jquery ui. Usa '// = richiede jquery.ui.all' per includere tutti i moduli, oppure puoi specificare solo il core con' // = require jquery.ui.core' maggiori informazioni su [jquery-ui-rails gem pagina] [1] [1]: https://github.com/joliss/jquery-ui-rails – Danny

+1

Penso che il commento di Roger non sia aggiornato (ad agosto 2014) su Rails 4.1. –

+0

Sì! La nuova [sintassi] (https://github.com/joliss/jquery-ui-rails#require-everything) ora '// = richiede jquery-ui'. –

10

Se si utilizza versioni successive di jquery-ui-rails nel mio caso jquery-ui-rails-5.0.0

Ho trovato nei jquery-ui-rails-5.0.0 cartella Assets, che scrivere la seguente riga nel vostro application.css:

*= require jquery-ui 

recupera tutti gli elementi dell'interfaccia utente per il vostro CSS, si chiama semplicemente:

*= require jquery-ui/all 

e se si scrive quanto segue nel tuo application.js

//= require jquery-ui 

recupera maggior parte dei file js jQuery, con eccezione di alcuni datepickers specifici, non esiste un metodo #all per jQuery in applicazione.js, nella maggior parte dei casi, questi farebbero, ma se non, allora si può aggiungere il resto diretcly in applications.js esempio

//=require jquery-ui/datepicker-ru 

Quindi, in sintesi di utilizzare tutto ui sia per CSS e JS

*= require jquery-ui 
//= require jquery-ui 
+0

Risolto il problema, poiché aggiornavo jquery-i-rails alla 5.0.0. Grazie –

+1

Questo ha funzionato per me. Presta attenzione ai "trattini" in questa risposta (i.e "jquery.ui" dovrebbe essere "jquery-ui", come indica correttamente questa risposta). –