Rails 3.2: 找不到 'jquery-ui'

3

我已经四处寻找解决这个问题的方法。我已经将gemfile中的jquery-rails gem降级到2.3.0版本。但是,当我在application.js中引入jquery-ui时,仍然会出现Sprokets::FileNotFound错误。

couldn't find file 'jquery-ui'
  (in /home/richard/projects/pickaxe/mini-projects/depot-app/app/assets/javascripts/application.js:14)

这是我的application.js文件:
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require_tree .

我迫不及待地想知道为什么这个不起作用...


1
你是否将 jquery-ui.js 文件添加到你的项目中了? - Chubby Boy
你能发布一下 bundle install 的输出吗? - rails_id
没有,我在执行 bundle install 之后没有做任何操作。我以为这个会自动处理的。 - Senjai
3个回答

8
如果您正在使用jquery-ui-rails gem,则需要使用require jquery.ui.all而不是require jquery-ui。如果您不想使用gem,请确保在app/assets/javascripts文件夹中有一个jquery-ui.js文件。 更新 自版本5.0.0起,请使用require jquery.ui

请确保获取与您的Rails版本相应的“jquery-ui-rails”宝石。如果你在Rails 3.2中获取了4.0宝石,那你会度过难受的时光的。 - sent1nel
1
嗨@FabrizioBertoglio,请提出一个单独的问题 :) - jvnill
@FabrizioBertoglio 我决定为您检查,因为其他用户可能会遇到相同的错误,我认为如果我意识到答案不再正确,至少更新答案是我的一部分责任。 - jvnill

4

我尝试在我的应用程序上降级jquery-rails,这很顺利。

  1. gem 'jquery-rails', "~> 2.3.0"放入Gemfile
  2. 删除Gemfile.lock -> rm Gemfile.lock
  3. 运行bundle install
  4. //= require jquery-ui放入application.js
Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2013-06-08 13:16:50
 +0700
Compiled jquery-ui.js  (27ms)  (pid 7016)
Compiled application.js  (148ms)  (pid 7016)
Served asset /application.js - 200 OK (213ms)

你能发布一下你的Gemfile吗?


我认为第四步应该是//= require jquery_ui而不是//= require jquery-ui - Starkers
@Starkers:你确定吗?你尝试过使用 //= require jquery_ui 吗?我尝试使用 //= require jquery_id 时出现了错误 couldn't find file 'jquery_ui' - rails_id
啊,抱歉,我正在使用一个稍微不同的宝石:http://rubygems.org/gems/jquery-ui-rails。不过,我认为应该使用这个宝石而不是jquery rails v.2.3.0,因为这个宝石正在更新。在我看来,这似乎比永远坚持旧版本更好的想法。 - Starkers
同意,使用最新版本并使用 jquery-ui-rails gem 来使用 jQuery UI 是更好的想法,但是我回答 OP 的问题时,OP 使用的是 jquery-rails 版本 2.3.0。 - rails_id

0

我曾经遇到过类似的问题。问题并不是与现有的gems相关,而是与它们的缓存版本有关。

以下步骤解决了我的问题:

  1. 指定受影响的gems的实际版本
  2. 通过运行rake assets:clean清理资产管道
  3. 清除浏览器缓存
  4. 重新启动服务器

由于这里的问题与gems的缓存版本有关,因此这个过程对每个人来说都不一样,正如我已经提到的那样。

至少它应该有助于找到解决方案。


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