2013-06-11 3 views
17

Ich habe gerade eine neue Installation durchgeführt und konnte auf die Standard-Rails-Seite bei localhost: 3000 zugreifen, aber als ich den ActiveAdmin-Edelstein installiert hatte ein Problem beim Zugriff auf/admin/und erhielt den folgenden Fehler auf/admin/login (ich wurde umgeleitet, aber das ist, was ich auf der Seite sah :)Ruby on Rails: "Ich konnte die Datei 'jquery-ui' nicht finden"

Was kann ich tun? Ich habe Bundle Update gemacht und es ist nicht behoben.

Hier ist der Teil-Fehlermeldung:

Pinion :: FileNotFound in Active_admin/devise/sessions # new

Zeige /usr/local/rvm/gems/ruby-1.9.3-p392/ Edelsteine ​​/ activeadmin-> 0.6.0/app/views/layout/active_admin_logged_out.html.erb wo Zeile # 12 angehoben:

Datei 'jquery-ui' gefunden (in/usr/local/RVM/edelsteine ​​/ ruby-1.9.3-p392/edelsteine ​​/ activeadmin-> 0.6.0/app/assets/javascripts/active_admin/base.js: 2)

hier ist mein Juwel-Datei:

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

Zeige deine application.js Datei – uday

+1

@uDaY: active_admin verwendet ein eigenes Manifest - die Datei application.js sollte hier keine Rolle spielen. – PinnyM

Antwort

29

Dies ist ein known issue aufgrund der jquery-rails Abhängigkeit fallen jQuery-UI-Unterstützung. Die Abhilfe für den Moment scheint das jquery-rails Juwel zu zwingen, zu sein 2.3.0 mit Version zu laden:

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

Ein verwandtes Problem aufgrund dieses: Debug jQueryUI Versions in Rails.

+0

Ja, vielen Dank! – tjcss

+4

Das hat meinen Fehler nicht behoben, der der gleiche wie oben ist – markhorrocks

+0

@markhorrocks: Dann ist es wahrscheinlich nicht die gleiche Ursache - zögern Sie nicht, eine Frage bezüglich des Problems zu stellen, die Sie erfahren – PinnyM

4

Ich würde vorschlagen, Ihre application.js von der Aktualisierung: //= require jquery_ui bis //= require jquery.ui.all als bevorzugte Lösung (anstatt eine veraltete Version des Juwels).

+0

Wie das OP erklärte, geschieht dies im Namensraum/admin aufgrund des Manifests in active_admin. Das Ändern von application.js wird nicht helfen - Sie müssten den Anlagenbaum active_admin kopieren und die Änderungen dort vornehmen. Das ist ziemlich aufdringlich und ziemlich mühsam, um Updates zu pflegen. – PinnyM

2

Das Hinzufügen der Jquery-Ui-Schienen Juwel wird Ihnen auch jquery.ui Unterstützung geben.

gem 'jquery-ui-rails' 

In Ihrem application.js und application.css-Dateien können Sie alle Module

jquery.ui.all 

hinzufügen oder nur die, die Sie benötigen, zB:

jquery.ui.slider 
+0

Korrekt - Es gibt eine neue Syntax zum Einbinden von jquery ui. Verwenden Sie '// = erfordern jquery.ui.all', um alle Module einzuschließen, oder Sie könnten nur den Kern mit' // = require jquery.ui.core' angeben. Weitere Informationen unter [jquery-ui-rails gem Seite] [1] [1]: https://github.com/joliss/jquery-ui-rails – Danny

+1

Ich denke, dass Rogers Kommentar ist veraltet (Stand: August 2014) auf Rails 4.1. –

+0

Ja! Neu [Syntax] (https://github.com/joliss/jquery-ui-rails#require-everything) ist jetzt '// = require jquery-ui'. –

10

Wenn Sie mit spätere Versionen von jquery-ui-rails in meinem Fall jquery-ui-rails-5.0.0

fand ich in den jquery-ui-Schienen-5.0.0 aus Assets Ordner, dass Sie die folgende Zeile in Ihre application.css schreiben:

*= require jquery-ui 

alle UI-Elemente für Ihre CSS holt, es ruft einfach:

*= require jquery-ui/all 

und wenn Sie folgendes in Ihre application.js

//= require jquery-ui 

schreiben es die meisten jquery js Dateien abruft, mit Ausnahme einiger spezieller Kalenderwerkzeug, gibt es keine #all Methode für jquery in Anwendung.js, in den meisten Fällen würden diese tun, aber wenn nicht, dann können Sie den Rest diretcly in applications.js zB

//=require jquery-ui/datepicker-ru 

Also zusammenfassend hinzufügen alle ui sowohl für CSS zu verwenden und js

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

Mein Problem wurde behoben, als ich die jquery-ui-rails auf 5.0.0 aktualisierte. Danke –

+1

Das hat für mich funktioniert. Achten Sie auf die 'Bindestriche' in dieser Antwort (d. H. "Jquery.ui" sollte "jquery-ui" sein, wie diese Antwort korrekt anzeigt). –