如何在Rails 3.1中正确加载jQueryUI?

时间:2012-02-01 14:12:59

标签: jquery ruby-on-rails ruby ruby-on-rails-3 jquery-ui

我一直在努力让jQueryUI标签在我的Rails 3.1应用程序上运行,但我总是得到它。

我在我的jquery-rails

中加载了来自application.js.coffee gem的jQuery和jQueryUI
#= require jquery
#= require jquery-ui
#= require jquery_ujs
# more requires ...

jQuery ->
  // regular jQuery stuff

我总是得到TypeError: Object [object Object] has no method 'tabs',好像jQueryUI没有正确加载。即使我在控制台中尝试它

fail in chrome console

我已经检查了jquery-rails宝石的内容,它就在那里

$ head -n 2 ~/.rvm/gems/ruby-1.9.3-p0/gems/jquery-rails-1.0.18/vendor/assets/javascripts/jquery.js 
/*!
 * jQuery JavaScript Library v1.7

$ head -n 2 ~/.rvm/gems/ruby-1.9.3-p0/gems/jquery-rails-1.0.18/vendor/assets/javascripts/jquery-ui.js
/*!
 * jQuery UI 1.8.16

为什么jQueryUI没有正确加载?我还需要在app配置中设置一些东西来加载jQueryUI吗?有什么方法可以检查它何时被加载?从哪里开始?

我检查了jQueryUI文件本身,它确实包含了标签定义... proof:

$ grep tabs ~/.rvm/gems/ruby-1.9.3-p0/gems/jquery-rails-1.0.18/vendor/assets/javascripts/jquery-ui.js | wc -l
      90

4 个答案:

答案 0 :(得分:1)

我有这个确切的问题(除了它是可排序的,而不是标签) - 结果我有一套旧的预编译资产踢。删除公共/资产清除了错误(帽子提示为“Rails 3.1 , jQuery UI does not load”)

答案 1 :(得分:0)

在检查它是否正确加载方面,我建议使用插件yepnope.js。它允许您测试条件,并行加载脚本,涵盖错误处理,并具有方便的回调。

答案 2 :(得分:0)

在config / environments / development.rb(或您要编辑的环境文件)中

  # Expands the lines which load the assets
  config.assets.debug = true

这将使页面呈现缓慢但页面源将显示正在加载的javascript和css的所有源,而不是显示一个大的压缩文件。你可以检查jquery-ui是否是其中之一。

另外,检查是否定义了两次jquery。在这种情况下,$ variable被重新定义和覆盖,并且apis可能在新的定义绑定中不可用。

答案 3 :(得分:0)

我有标签这个问题并且正在吃香蕉。原来我需要预先编译我的资产:

RAILS_ENV=production bundle exec rake assets:precompile

这为我修好了。 (我认为删除上面答案中提到的public / assets文件夹的内容也会有效。)