2011-11-19 101 views
9

這是一個很奇怪的問題。我有一個rails應用程序,我在其中使用UJS替換頁面上的一個部分。最近,它停止了工作,所以我開始記錄整個過程,看看它打破了什麼地方。這裏是我的發現:該鏈接被點擊rails ujs - javascript沒有執行

  • 後,鐵軌控制檯告訴我,一切都渲染,包括所有的泛音,並返回200 OK。
  • 一個提出在控制器動作返回精細
  • 一個提出在respond.do塊11返回精細
  • 一個提出在.js.erb文件返回精細

這意味着它讓所有的方式來運行.js.erb文件和評估沒有錯誤的紅寶石。 但這裏有什麼奇怪的 - 沒有一個JavaScript正在執行。當我在.js.erb文件中運行警報('hello?')時,它不會執行。

有沒有人遇到過這個問題?看起來非常奇怪,它會運行erb評估,但不是js。並沒有錯誤出現在js控制檯中。

對於我的記錄:清除緩存,重新啓動瀏覽器,重新啓動rails應用程序,並沒有任何改變。

示例代碼:

# view 
link_to 'example', some_path, :remote => true 

# controller 
respond_to do |format| 
    format.js 
end 

# .js.erb file 
alert('this never shows up'); 
<% puts 'this shows up in the rails console' %> 

感謝洙多的人誰可以擺脫一點光對這個奇怪的問題!

+0

凡是在JS控制檯? –

+0

「js控制檯中也沒有出現錯誤。」 –

+1

對不起;我會自動忽略以連詞開始的句子。 –

回答

9

有沒有機會在js中出錯? ajax請求通常不會在js控制檯中顯示。 http://www.alfajango.com/blog/rails-js-erb-remote-response-not-executing/

(A類似的環境中運行我的機器罰款)

+0

哈哈你的權利,它出現在鉻檢查器的網絡選項卡(在XHR下,如我所說)。 JavaScript控制檯保持空白。儘管這是一個很棒的帖子,我會檢查一下,看看是否能解決它!謝謝〜 –

+0

在這篇文章中它說要檢查它是否正在處理「作爲JS」 - 對我來說,它說它正在作爲JS處理。所以我點擊了你提供的替代鏈接,它給了我一個404錯誤。 –

+0

我也意識到:(但文章的底部提供了一種方法來測試呈現的錯誤在螢火蟲js。這可能會提供一些洞察到發生了什麼 –