2011-10-11 57 views
13

我開發了一個Rails 3.1應用程序,它包含100%的Ajax CRUD表單以輸入用戶和客戶。我創建了兩個獨立的模型,控制器,視圖等。每個模型的視圖都包含用於創建編輯更新和銷燬的jquery文件。問題是當我執行任何執行遠程操作的操作時,它被調用兩次。我可以在Firebug的控制檯視圖以及WEBrick輸出中確認這一點。任何人都可以協助追查這裏發生的事情嗎?什麼會導致軌道處理每次通話兩次?Rails 3.1遠程請求提交兩次

+0

一些代碼將有助於更好地理解透視圖。發佈被調用兩次的代碼 – Rafay

+0

這是一個預感 - 你的JavaScript代碼或['jquery-rails'](https://github.com/rails/jquery-rails)被包含在頁面中兩次?如果您進行了任何預編譯,請檢查公共/資產文件夾。 – Anurag

+0

@Auurag這就是我認爲正在發生的事情。在開始發生之前,我運行了「bundle exec rake assets:precompile」。我只需要刪除該文件? – ctilley79

回答

13

如果您已預編譯資源並以開發模式運行,那麼JavaScript中將包含兩次頁面。

如果處於開發模式,則從public/assets中刪除所有內容。

+0

我試圖按照你的解決方案(即,刪除公共/資產路徑,並重新啓動我的服務器),但我仍然得到問題中解釋的問題。我忘了做點什麼嗎? – user12882

+2

這是一個緩存問題。重置您的瀏覽器緩存。在我想出來之前發生在我身上 – ctilley79

+2

你知道有一個rake命令可以做到嗎?只需寫:耙資產:清理您的終端。 ;) – Kulgar

19

config.serve_static_assets = false添加到development.rb將防止從/public/assets加載文件。

其實我需要在本地進行預編譯,因爲我的測試模式僅使用來自/public/assets的靜態資產 - 測試正在捕捉可能的生產資產問題。怎麼樣?只需在test.rb配置中設置config.assets.compile = falseconfig.serve_static_assets = true即可。

+1

從Rails 4開始,不建議使用'config.serve_static_assets'。改用'config.serve_static_files'。 – Jin