Ruby on Rails:“找不到文件’jquery-ui’”

我刚刚完成了全新的安装,并且能够访问localhost:3000的默认rails页面,但是当我安装activeadmin gem时,访问/ admin /时出现问题并在/ admin / login上收到以下错误(我被重定向,但这是我在页面上看到的:)

我该怎么办? 我已经完成了捆绑更新,并没有修复它。

这是部分错误消息:

Sprockets :: FileNotFound在Active_admin / devise / sessions#new中

显示/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activeadmin->0.6.0/app/views/layouts/active_admin_logged_out.html.erb,其中第12行引发:

找不到文件’jquery-ui’(在/usr/local/rvm/gems/ruby-1.9.3-p392/gems/activeadmin->0.6.0/app/assets/javascripts/active_admin/base.js中: 2)

这是我的gem文件:

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' 

这是一个已知问题,因为jquery-rails依赖关系丢弃了jQuery-UI支持。 目前的解决方法似乎是强制使用版本2.3.0加载jquery-rails gem:

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

由此产生的相关问题: 在Rails中调试jQueryUI版本 。

如果您在我的案例jquery-ui-rails-5.0.0中使用更高版本的jquery-ui-rails

我在jquery-ui-rails-5.0.0 assets文件夹中找到了,将以下行写入application.css:

 *= require jquery-ui 

为你的css提取所有ui元素,它只是调用:

 *= require jquery-ui/all 

如果你将以下内容写入application.js

 //= require jquery-ui 

它获取大多数jquery js文件,除了一些特定的日期选择器,在application.js中没有jall类的#all方法,在大多数情况下这些都可以,但如果没有,那么你可以将其余的直接添加到applications.js中,例如

 //=require jquery-ui/datepicker-ru 

总而言之,将所有ui用于css和js

 *= require jquery-ui //= require jquery-ui 

我建议更新你的application.js//= require jquery_ui to //= require jquery.ui.all作为首选解决方案(而不是使用过时版本的gem)。

添加jquery-ui-rails gem也会为你提供jquery.ui支持。

 gem 'jquery-ui-rails' 

在application.js和application.css文件中,您可以添加所有模块

 jquery.ui.all 

或者只是你需要的,例如:

 jquery.ui.slider