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

Posted

技术标签:

【中文标题】rails active admin 部署:找不到文件\'jquery-ui\'【英文标题】: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 2.0.0-p0 要么降级左右:***.com/questions/15874265/… 【参考方案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 有点自动找出所有三个宝石的正确版本。

【讨论】:

以上是关于rails active admin 部署:找不到文件'jquery-ui'的主要内容,如果未能解决你的问题,请参考以下文章

将 Rails 3.1 项目部署到 Heroku 时出现问题:找不到 JavaScript 运行时

在控制器中找不到命名空间内的 Ruby on Rails 模型

Rails 3 - Active_admin 可以使用现有的用户模型吗?

Rails:用按钮隐藏记录,找不到ID错误的记录

谷歌云平台:“找不到模块 firebase-admin”

在Active Admin Rails中创建新项目时过滤下拉列表