0

我是Rails的新手。我有一個程序在RAILS中執行基本的AJAX功能。點擊鏈接TEST時,會執行控制器中的測試路徑,該路徑執行test.js.erb。但我看到在服務器日誌中呈現,但沒有看到警報消息。AJAX請求Rails 3.1不渲染javascript

index.html.erb:

<%= link_to 'TEST', test_path, :remote => true %> <br> 

測試動作:

def test 
    respond_to do |format| 
     format.js 
    end 
    end 

測試js.erb:

"alert('Hello Rails');" 

服務器日誌:

入門使用「/測試「爲xxxx在2013-06-30 11:34:37 -0 700 DefaultController處理#test as JS
渲染默認/ test.js.erb(0.3ms) 在2ms內完成200 OK(查看:2.1ms | ActiveRecord的:0.0ms)

如果我更改代碼以直接從控制器動作使JS,如下所示,我看到警報消息。

def test 
    render :js "alert('Hello Rails');" 
    end 

但我想的JS在一個單獨的js文件執行。有人可以幫助我什麼,我做錯了,以及如何將它作爲test.js.erb的一部分執行?

+1

只是從警報中刪除雙引號 –

回答

1

喬半臉是正確的,

"alert('Hello Rails');" 

應該是:

alert('Hello Rails'); 

保持這種引號將它作爲一個字符串,所以沒有javascript代碼運行,一切都在js文件將它想象爲內部的javascript標記:

<script type="text/javascript"> 
    content of js.erb file 
</script> 
+0

T我想,帽子不需要一個答案。 –

+0

同意,這個問題本身可以被刪除。 – rmagnum2002