【问题标题】:rails active admin deployment : couldn't find file 'jquery-ui'rails active admin 部署:找不到文件'jquery-ui'
【发布时间】:2013-05-26 12:21:44
【问题描述】:

当尝试使用 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,错误仍然存​​在。我做了坏事吗?

谢谢

【问题讨论】:

标签: ruby-on-rails capistrano activeadmin assets


【解决方案1】:

“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 master 分支中提取。他们已经应用了一个临时修复。

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

【讨论】:

  • 为了避免沮丧,我推荐第二种解决方案。 gem "jquery-ui-rails" 将他们的 jquery-ui 文件命名为 jqueryui,所以如果你走这条路,ActiveAdmin 仍然会出现加载错误。
  • 将“jquery-rails”降级为“2.3.0”从我的角度解决了这个问题。在 Rails 3.2.13 上,顺便说一句。
【解决方案2】:

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

【讨论】:

  • 有人得到了不涉及降级 jquery-rails 的完整答案吗?
【解决方案3】:

虽然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

【讨论】:

  • 找不到文件'jquery.ui.core'
【解决方案4】:

好吧,没有必要将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

【讨论】:

  • 我更喜欢这个,因为我通常喜欢使用 ruby​​gems 作为源而不是 github 上的 master 分支。
  • 只是按照这些说明操作,效果很好 - 谢谢。
  • 我喜欢你的解决方案,因为我使用了其他依赖于 jquery-ui > 3.0.0 的 gems
  • 我也喜欢这个解决方案,因为我需要使用 jquery-rails > 3.0.0 和 jquery-ui-rails。但是,我遇到了依赖问题。 . . Bundler could not find compatible versions for gem "jquery-rails": In Gemfile: activeadmin (= 0.6.1) depends on jquery-rails (&lt; 3, &gt;= 1.0.0) jquery-rails (3.0.4)。我怎样才能解决这个问题???
  • @chuckw 我的Gemfile.lock 中有activeadmin 0.6.0,但它没有jquery-rails (&lt;3) 规则。 activeadmin 0.6.0jquery-rails 3.0.4 对我来说似乎很好地共存。所以尝试将您的 ActiveAdmin 行更改为 gem 'activeadmin', '0.6.0' 以冻结它(假设您不需要 ActiveAdmin 0.6.1 的新功能)?您可能应该单独向 ActiveAdmin 的问题跟踪器报告此问题。
【解决方案5】:

就我而言,jquery 问题是由于我使用的 gem 造成的。我没有直接使用 jquery,所以将 app/assets/js/jquery-ui.js 添加到我的项目中并没有帮助。

将 gem "jquery-rails", "

我的最终 gemfile:

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

...简单易懂

【讨论】:

    【解决方案6】:

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

    遇到此问题时,我正在运行 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 有点自动找出所有三个宝石的正确版本。

    【讨论】:

      猜你喜欢
      • 2013-03-30
      • 2013-06-07
      • 2013-03-30
      • 1970-01-01
      • 1970-01-01
      • 2013-07-23
      • 1970-01-01
      • 2013-12-18
      • 2021-08-27
      相关资源
      最近更新 更多