2011-11-17 117 views
2

我在窗口7個,並呈現渲染:JS不工作

render :js => "alert('Hello')". 

面臨的問題,但它是沒有得到警報。

有沒有人有過這個問題的經驗。

+0

請出示您的控制器方法和Ajax調用。它在Windows上運行的事實與此問題無關。 – nathanvda

+0

請求是要xyz方法,但我已添加一個之前的過濾器,具有渲染代碼:def session_expiry render:js =>「alert('Mine method')」,:content_type =>'text/javascript' – Neelesh

回答

0

確保客戶端使用JS格式請求,因爲在這種情況下,Rails會爲js設置內容類型,而不是text/html

+0

In任何情況下,我沒有得到警報我嘗試了異步和同步請求。我使用的是窗口機器。 – Neelesh

+0

檢查瀏覽器中的請求響應。如果它是'text/html',那麼你的客戶端代碼發送的請求的內容類型無效。例如,在'ajax'上的jQuery中,您可以指定'dataType'參見(http://api.jquery.com/jQuery.ajax/) –

+0

更改爲content_type => application/x-javascript – Neelesh

0

看起來你正在嘗試調試你的代碼。使用before_filter不是最好的方法。一個請求只能渲染一次。

我建議在您的日誌記錄中添加語句,並使用瀏覽器的JavaScript /開發控制檯(Chrome/Firefox):這將顯示完美的線路,dn在客戶端執行什麼操作以及爲什麼失敗(如果失敗)。

希望這會有所幫助。

+0

不,我沒有調試我的代碼,看到一個請求轉到MyController的創建方法,但我添加了一個before_filer:check_active_time check_active_time已經呈現:js =>「alert('hello')」,並且完成了此過程由ajax.so這是場景...請幫助我,如果有任何.. – Neelesh

+0

1)我相信'before_filter'渲染是錯誤的! 2)使用我聲明的工具來搜索錯誤,或顯示更多的代碼。像@MarkGut所說,'render:js'只有在你的ajax是正確的時候纔會起作用。 – nathanvda

+0

嗯,我理解,但我的需要就像它,我必須重定向到登錄頁面,如果用戶閒置30分鐘。和所有頁面正常工作與redirect_to但一些頁面只有ajax(使用骨幹),所以我需要渲染的Ajax請求...我沒有選擇,如果你有更好的想法請讓我知道 – Neelesh

1

你應該使用AJAX所以你應該「遠程:真正的」添加帕拉姆調用鏈接或形成正在調用該操作