2012-01-08 79 views
5

我正在使用Rails 3.1,并且jQueryUI库存在问题。这里是我的application.js文件:Rails 3.1,jQuery UI不加载

//= require jquery 
//= require jquery-ui 
//= require jquery_ujs 
// Loads all Bootstrap javascripts 
//= require bootstrap 
//= require rails.validations 

//= require_tree . 

给它装上“jQuery UI的”文件到浏览器,但无论我使用与它,它显示了这个错误:

TypeError: Object function (a,b){return new d.fn.init(a,b,g)} has no method 'dialog' 

回答

2

经过与挣扎小时问题,我终于从application.js删除//= require jquery-ui,并添加了新的jQuery UI文件,现在一切正常。我的新资源文件是:

//= require jquery 
//= require jquery/jquery-ui 
//= require jquery_ujs 
// Loads all Bootstrap javascripts 
//= require bootstrap 
//= require rails.validations 

//= require_tree . 

jquery是我javascripts文件夹的子文件夹。

3

我有同样的问题,application.js是这样的:

//= require jquery 
//= require jquery_ujs 
//= require jquery-ui 

在发展模式,似乎/assets/application.js包含有UJS捆绑版本的jQuery的,而且,当添加到页面中,它是这样的:

<script src="jquery"></script> 
<script src="jquery_ujs"></script> 
<script src="jquery-ui"></script> 
<script src="application.js"></script> 

最后一个文件覆盖了前三个文件。我把:

//= require_self 
//= require jquery-ui 

它工作正常。

有趣的是,application.js只包含require行,没有jQuery或ujs。

+1

不知道为什么/如何/何时删除'require_self'开始,但将其添加回顶部解决了我的问题。谢谢! – umezo 2013-08-17 18:35:22

2

您可能在更早的时候对资产进行了预编译。 尝试删除public/assets下的所有内容。