可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
when trying to deploy with capistrano, when capistrano use command
bundle exec rake
RAILS_ENV=production
RAILS_GROUPS=assets
assets:precompile
I have this error
couldn't find file 'jquery-ui'
(in /home/umbrosus/.rvm/gems/ruby-1.9.3-p392@gancxadebebi/gems/activeadmin-0.5.1/app/assets/javascripts/active_admin/base.js:2)
Before it was working well, but I tried to update to 0.6 and then I started to have this error. I came back to 0.5.1 and the error is still there. Do I do something bad ?
thanks
回答1:
The "jquery-rails" gem recently removed jQuery UI.
https://github.com/rails/jquery-rails/commit/2fdcdb2633cbc6426d412c050200fc31d14b9a3b
They recommend using the jquery-ui-rails gem.
There is an active pull request (as of this writing) to add that gem as a dependency. However, the developers of ActiveAdmin have stated that they are "locking it down until we officially drop support for Rails 3.0". The version they are locked to is jquery-rails < 3.0.0
.
In the meantime, just modify your Gemfile:
gem "jquery-ui-rails" Not recommended, see @Kevin's comment below
Or you can downgrade your version of jquery-rails:
gem "jquery-rails", "< 3.0.0"
Or you can pull from their Github master branch. They have applied a temporary fix.
gem "activeadmin", github: "gregbell/active_admin"
回答2:
Well, there is no need to downgrade jquery-rails
to 2.3.0
or specify a GitHub branch. Just use jquery-ui-rails
. To workaround the file name differences:
Simply create app/assets/javascripts/jquery-ui.js
//= require jquery.ui.all
Create app/assets/stylesheets/jquery-ui.css
/*
*= require jquery.ui.all
*/
These load the correct files to satisfy ActiveAdmin
回答3:
Though the Pull request has been merged into AA by now, you will still have this problem if you work with the latest release of AA. I don't like to force JQuery-rails down to version 2.3.0 so here's an alternative solution to the problem:
In the active_admin.js
file replace
//= require active_admin/base
with
//= require jquery
//= require jquery_ujs
//= require jquery.ui.core
//= require jquery.ui.widget
//= require jquery.ui.datepicker
//= require active_admin/application
kudos to Fred for providing that solution here.
回答4:
Downgrading "jquery-rails" to "2.3.0" fixed this issue for me as well.
回答5:
In my case, the jquery issue was due to a gem I was using. I wasn't using jquery directly, so adding app/assets/js/jquery-ui.js to my project didn't help.
Adding gem "jquery-rails", "< 3.0.0" to my gemfile fixed it, but I got an issue with turbolinks immediately after that, which is easy enough to fix...
My final gemfile:
# Temporary fix for jquery issue
gem "jquery-rails", "< 3.0.0"
gem 'turbolinks'
... easy peasy
回答6:
I know this is already solved. But I want to give one more solution to this that worked for me.
I am running Rails 4.0.8 when having this issue.
I simply remove explicit version number for jquery-rails gem jquery-ui-rails gem.
Mine looks like this essentially:
# js
gem 'jquery-ui-rails'
gem 'jquery-rails'
# rails admin
gem 'rails_admin'
Gemfile.lock
kinda figured out the correct version for all three gems automatically.