Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ruby on Rails: "couldn't find file 'jquery-ui'"

I've just done a fresh install and was able to access the default rails page at localhost:3000, but when I installed the activeadmin gem I had a problem when accessing /admin/ and received the following error on /admin/login (I was redirected, but this is what I saw on the page:)

What do I do? I have done bundle update and it's not fixed it.

Here's the partial error message:

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

Showing /usr/local/rvm/gems/ruby-1.9.3-p392/gems/activeadmin->0.6.0/app/views/layouts/active_admin_logged_out.html.erb where line #12 raised:

couldn't find file 'jquery-ui' (in /usr/local/rvm/gems/ruby-1.9.3-p392/gems/activeadmin->0.6.0/app/assets/javascripts/active_admin/base.js:2)

here is my gem file:

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'
like image 699
tjcss Avatar asked Jun 11 '13 20:06

tjcss


3 Answers

This is a known issue due to the jquery-rails dependency dropping jQuery-UI support. The workaround for the moment appears to be to force the jquery-rails gem to load using version 2.3.0:

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

A related problem due to this: Debug jQueryUI Versions in Rails.

like image 148
PinnyM Avatar answered Sep 27 '22 17:09

PinnyM


If you are using later versions of jquery-ui-rails in my case jquery-ui-rails-5.0.0

I found out in the jquery-ui-rails-5.0.0 assets folder, that writing the following line into your application.css:

*= require jquery-ui

fetches all ui elements for your css, it simply calls:

*= require jquery-ui/all

and if you write the following into your application.js

//= require jquery-ui

it fetches most jquery js files, with exception of some specific datepickers, there is no #all method for jquery in application.js, in most cases these would do, but if not, then you can add the rest diretcly into applications.js e.g

//=require jquery-ui/datepicker-ru

So in summary to use all ui for both css and js

*= require jquery-ui
//= require jquery-ui
like image 37
Kingsley Ijomah Avatar answered Sep 27 '22 16:09

Kingsley Ijomah


I would suggest updating your application.js from: //= require jquery_ui to //= require jquery.ui.all as the preferable solution (rather than using an outdated version of the gem).

like image 38
Akiva Avatar answered Sep 27 '22 16:09

Akiva