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