Rails Active Admin部署:找不到文件'jquery-ui'。

43
当使用Capistrano进行部署时,Capistrano使用命令bundle 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,但错误仍然存在。我做错了什么吗?

谢谢


2
我在本地版本上遇到了同样的问题。使用Ruby 2.0.0-p0。 - Kevin
无法找到文件jquery-ui-all,可能需要降级或重新安装gem jquery-ui-rails。 - Hugo Stieglitz
6个回答

118
最近,“jquery-rails” gem 移除了 jQuery UI。

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

他们建议使用jquery-ui-rails gem。
截至本文撰写时,有一个活跃的拉取请求添加了该gem作为依赖项。但是,ActiveAdmin的开发人员已经声明他们将 "锁定它,直到我们正式停止支持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"

60
为了避免不必要的烦恼,我建议选择第二个解决方案。 "jquery-ui-rails"这个gem将他们的 "jquery-ui" 文件命名为 "jqueryui",因此如果你选择这种方法,ActiveAdmin仍然会出现加载错误。 - Kevin
2
将 "jquery-rails" 降级至 "2.3.0",从我的角度解决了这个问题。顺便说一下,这是在 Rails 3.2.13 上进行的。 - jcuervo

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。

我更喜欢这个,因为我通常喜欢使用rubygems作为源,而不是在github上使用主分支。 - manderson
刚刚按照这些说明操作,完美地解决了问题——谢谢。 - Richard Jordan
我喜欢你的解决方案,因为我使用了其他依赖于jquery-ui > 3.0.0的宝石。 - Lucca Mordente
我也喜欢这个解决方案,因为我需要使用jquery-rails > 3.0.0和jquery-ui-rails。然而,我遇到了一个依赖问题... `Bundler无法找到与gem“jquery-rails”兼容的版本: 在Gemfile中: activeadmin(= 0.6.1)取决于 jquery-rails(<3,> = 1.0.0)jquery-rails(3.0.4)`。我该怎么办??? - chuck w
@chuckw 我的 Gemfile.lock 中有 activeadmin 0.6.0,但没有规则 jquery-rails (<3)。对我来说,activeadmin 0.6.0jquery-rails 3.0.4 似乎可以很好地共存。因此,尝试将你的 ActiveAdmin 行更改为 gem 'activeadmin','0.6.0' 来冻结它(假设你不需要 ActiveAdmin 0.6.1 的新功能)?你应该单独向 ActiveAdmin 的问题跟踪器报告此问题。 - kizzx2
显示剩余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这里提供了解决方案。


找不到文件 'jquery.ui.core'。 - Nadeem Yasin

1
将 "jquery-rails" 降级到 "2.3.0" 对我也解决了这个问题。

有人有完整的答案,不需要降级jquery-rails吗? - markhorrocks

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 自动为这三个 gem 找到了正确的版本。


0
在我的情况下,jquery的问题是由我使用的一个gem引起的。我没有直接使用jquery,因此将app/assets/js/jquery-ui.js添加到我的项目中并没有帮助。
将gem "jquery-rails","< 3.0.0"添加到我的gemfile中解决了这个问题,但是之后我立即遇到了turbolinks的问题,这很容易解决...
我的最终gemfile:
# Temporary fix for jquery issue
gem "jquery-rails", "< 3.0.0"
gem 'turbolinks'

...易如反掌


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接