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

use*_*483 43 capistrano assets ruby-on-rails activeadmin

当尝试使用capistrano进行部署时,capistrano使用命令bundle exec rake

    RAILS_ENV=production 
    RAILS_GROUPS=assets 
    assets:precompile
Run Code Online (Sandbox Code Playgroud)

我有这个错误

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)
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Jam*_*ren 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"
Run Code Online (Sandbox Code Playgroud)

或者你可以从他们的Github主分支中取出.他们已经应用了临时修复.

gem "activeadmin", github: "gregbell/active_admin"
Run Code Online (Sandbox Code Playgroud)

  • 为了节省挫折感,我建议使用第二种解决方案.`gem"jquery-ui-rails"`命名为`jquery-ui`文件`jqueryui`,因此如果你去那条路线,ActiveAdmin仍会有加载错误. (60认同)
  • 将"jquery-rails"降级为"2.3.0"可以解决这个问题.在Rails 3.2.13上,顺便说一下. (2认同)

kiz*_*zx2 31

那么,有没有必要降级jquery-rails2.3.0或指定GitHub的分支.只是用jquery-ui-rails.要解决文件名差异:

简单地创造 app/assets/javascripts/jquery-ui.js

//= require jquery.ui.all
Run Code Online (Sandbox Code Playgroud)

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

/*
 *= require jquery.ui.all
 */
Run Code Online (Sandbox Code Playgroud)

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


kai*_*chn 11

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

//= require active_admin/base
Run Code Online (Sandbox Code Playgroud)

//= require jquery
//= require jquery_ujs
//= require jquery.ui.core
//= require jquery.ui.widget
//= require jquery.ui.datepicker
//= require active_admin/application
Run Code Online (Sandbox Code Playgroud)

荣誉给弗雷德用于提供该解决方案在这里.