rails active admin deployment:找不到文件'jquery-ui'

时间:2013-05-30 19:30:30

标签: ruby-on-rails capistrano activeadmin assets

尝试使用capistrano进行部署时,使用capistrano命令时 捆绑exec rake

    RAILS_ENV=production 
    RAILS_GROUPS=assets 
    assets:precompile

我有这个错误

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)

在它运行良好之前,但我尝试更新到0.6然后我开始出现此错误。我回到0.5.1,错误仍然存​​在。我做坏事吗?

感谢

6 个答案:

答案 0 :(得分:118)

“jquery-rails”gem最近删除了jQuery UI。

https://github.com/rails/jquery-rails/commit/2fdcdb2633cbc6426d412c050200fc31d14b9a3b

他们建议使用jquery-ui-rails gem。

有一个active pull request(在撰写本文时)将该gem添加为依赖项。但是,ActiveAdmin的开发人员声称他们是“locking it down until we officially drop support for Rails 3.0”。他们锁定的版本是jquery-rails < 3.0.0

与此同时,只需修改您的Gemfile:

gem“jquery-ui-rails” 不推荐,请参阅@ Kevin的评论

或者你可以降级你的jquery-rails版本:

gem "jquery-rails", "< 3.0.0"

或者你可以从他们的Github主分支中取出。他们已经应用了临时解决方案。

gem "activeadmin", github: "gregbell/active_admin"

答案 1 :(得分:31)

好吧,没有必要将jquery-rails降级为2.3.0或指定GitHub分支。只需使用jquery-ui-rails即可。要解决文件名差异:

只需创建app/assets/javascripts/jquery-ui.js

即可
//= require jquery.ui.all

创建app/assets/stylesheets/jquery-ui.css

/*
 *= require jquery.ui.all
 */

这些加载正确的文件以满足ActiveAdmin

答案 2 :(得分:11)

虽然现在已将Pull请求合并到AA中,但如果您使用最新版本的AA,则仍会遇到此问题。我不想强迫JQuery-rails下载到2.3.0版本,所以这里是解决问题的另一种方法: 在active_admin.js文件替换

//= require active_admin/base

//= require jquery
//= require jquery_ujs
//= require jquery.ui.core
//= require jquery.ui.widget
//= require jquery.ui.datepicker
//= require active_admin/application

Fred提供该解决方案here

答案 3 :(得分:1)

将“jquery-rails”降级为“2.3.0”也为我解决了这个问题。

答案 4 :(得分:0)

在我的情况下,jquery问题是由于我正在使用的gem。我没有直接使用jquery,所以将app / assets / js / jquery-ui.js添加到我的项目中没有帮助。

将gem“jquery-rails”,“&lt; 3.0.0”添加到我的gemfile中修复它,但是之后我立即遇到了turbolinks的问题,这很容易修复......

我的最终宝石文件:

# Temporary fix for jquery issue
gem "jquery-rails", "< 3.0.0"
gem 'turbolinks'

...轻松的傻瓜

答案 5 :(得分:0)

我知道这已经解决了。但是我想再提出一个对我有用的解决方案。

遇到此问题时,我正在运行Rails 4.0.8。

我只是删除了jquery-rails gem jquery-ui-rails gem的显式版本号。

我本质上看起来像这样:

# js
gem 'jquery-ui-rails'
gem 'jquery-rails'

# rails admin
gem 'rails_admin'

Gemfile.lock有点想出所有三个宝石的正确版本。