0

我已经看过在互联网上,找到了这个问题的一些指令:安装jQuery插件中的Rails 3.2

Using jQuery plugins in Rails 3

http://ridingwithrails.wordpress.com/2011/12/28/rails-3-1-installing-lightbox-jquery-plugin/

这正是我做安装一个jQuery插件在轨道中。 我永远无法访问控制台中的新方法。 (我得到的错误,该函数不存在)

1 - 我下载插件,并把它放在:

vendor/assets/javascripts/plugin.js 

2 - 我的路径添加到application.js中的文件:

//= require jquery 
//= require jquery_ujs 
//= require plugin 
//= require_tree . 

3 - 如果适用,我对css也做同样的事情。 (在css文件夹中)

我试过的一些插件是:jquery-cookie jquery-star-rating 但它从来没有工作。 我在做什么错了?

谢谢你的回答

编辑: 当我检查自己的看法源的* .js文件的插件文件包括但每当我尝试使用函数从这些插件我得到的,例如:

[17:18:59,927] TypeError: $.cookie is not a function 
+0

将js文件保存在app/assets/javascript中,然后尝试 – 2012-08-11 13:06:48

+0

请使用javascript include标签显示您的模板文件。你有脚本标签,包含除application.js之外的其他文件吗? application.js是否包含插件代码? – pkubicki 2012-08-11 13:07:26

+0

在生产中,所有文件都在application.js中编译。在开发中,包括插件文件和application.js。 – RickyonRails 2012-08-12 15:23:46

回答

4

尝试以下方法,帮助调试,其中的问题恰恰是:

  1. 在plugin.js文件的顶部定义一个全局函数并尝试从控制台调用它。 (你可以在这里调用一个alert(),结果类似)。如果你能够调用这个函数,那么插件文件就像你声称的那样包含在内。如果没有,那么有可能你的资产路径了,所以尝试添加这样一行到你的config/application.rb中

    config.assets.paths << Rails.root.join("Vendor", "assets", "javascripts") 
    
  2. 镀铬或萤火虫与JavaScript控制台打开打开你的网页,并确保没有javascript错误。有可能是一个错误阻止了插件正确加载。

  3. 尝试使用最简单的插件(如从http://docs.jquery.com/Plugins/Authoring),如果可行,那么问题是与您尝试使用的特定插件。

  4. 尝试将您的插件包装到文档就绪块中,因为它可能需要DOM才能就位(注意:并不总是建议这样做,因为它可能导致未优化的页面加载,但值得一试)

    $(function() { 
        // put the plugin code here 
    }); 
    
  5. 你加载在其命名空间中使用$的其他的JavaScript,像原型?

  6. 这是一个香草栏应用程序,还是一个大型复杂的应用程序?如果是后者,请参阅是否可以通过最简单的失败示例重现问题。

+0

感谢您回答Ben,我使用了一个mac,我的文件夹是“供应商”。代码包含在页面中,但jQuery的功能不起作用。 – RickyonRails 2012-08-12 15:26:03

+0

好吧,我已经更新了我的答案,并提供了一些关于调试的建议,因为问题似乎与资产管道无关。 – 2012-08-12 18:10:55

+0

男人谢谢你!我的布局文件出现问题。我的application.js没有加载到我的所有页面中。 – RickyonRails 2012-08-14 01:21:20