我刚刚完成了全新的安装,并且能够访问localhost:3000的默认rails页面,但是当我安装activeadmin gem时,访问/ admin /时出现问题,并在/ admin /上收到以下错误登录(我被重定向,但这是我在页面上看到的:)。
我该怎么办?我已经完成了捆绑更新,并没有修复它。
以下是部分错误消息:
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)
这是我的宝石文件:
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'
答案 0 :(得分:29)
这是known issue,因为jquery-rails
依赖关系丢弃了jQuery-UI支持。目前的解决方法似乎是强制使用版本2.3.0加载jquery-rails
gem:
gem 'jquery-rails', '~> 2.3.0'
由此产生的相关问题:Debug jQueryUI Versions in Rails。
答案 1 :(得分:10)
如果您在我的案例中使用更高版本的jquery-ui-rails jquery-ui-rails-5.0.0
我在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方法,在大多数情况下这些都可以,但如果没有,那么你可以将其余的直接添加到应用程序中.js例如
//=require jquery-ui/datepicker-ru
总结一下,将所有ui用于css和js
*= require jquery-ui
//= require jquery-ui
答案 2 :(得分:4)
我建议您将application.js
从//= require jquery_ui
更新为//= require jquery.ui.all
作为首选解决方案(而不是使用过时版本的gem)。
答案 3 :(得分:2)
添加jquery-ui-rails gem也会为你提供jquery.ui支持。
gem 'jquery-ui-rails'
在application.js和application.css文件中,您可以添加所有模块
jquery.ui.all
或仅限您需要的,例如:
jquery.ui.slider