2013-09-10 66 views
0

我有一個名爲create.js.erb的js文件,它位於我的視圖文件夾中。應該在我嘗試創建記錄時調用它,但不會被調用。我無法弄清楚爲什麼,而且完全誠實,甚至不知道我的應用如何在視圖文件夾中調用js文件,所以我不確定在這裏粘貼什麼代碼來幫助調試問題。Rails:視圖文件夾中的js文件沒有被調用

任何人都可以向我解釋視圖文件夾中的js是如何執行的,以及何時我想將js文件放入我的視圖文件夾而不是資產管道中?

回答

1

* .js.erb文件在使用AJAX/JS和控制器操作時呈現。默認情況下,當您調用create方法時,Rails將使用HTML進行響應。這將加載一個新頁面。有時你想使用AJAX,這就是爲什麼你在視圖文件夾中創建js.erb文件的原因。

爲此,您使用的表單和/或link_to對象必須啓用AJAX(它們應該具有:remote => true屬性)如果它們未被指定爲遠程表單,則它們將執行HTML而不是JS和create.js.erb文件將永遠不會被調用。

您的控制器方法還需要知道如何響應js請求。在這種情況下

該代碼告訴Rails來尋找所謂的「方法」 .js.erb在視圖文件夾中的文件,所以,create.js.erb:你需要這樣的東西。

這些文件與您在資產管道中放置的常規JS文件完全不同 - 這些是作爲控制器操作結果呈現的視圖模板。

您可能會發現一些軌道/ AJAX教程有幫助...這裏是一個非常好的引導您完成整個過程:

http://net.tutsplus.com/tutorials/javascript-ajax/using-unobtrusive-javascript-and-ajax-with-rails-3

希望幫助,如果您需要更多的幫助,請張貼代碼爲您的控制器和任何查看文件...

+0

這是很有幫助的。謝謝!我一直在努力理解這一切。感謝這麼好的解釋! – Arel

+0

沒問題,很高興幫助! – Jim

+0

教程也很棒。謝謝! – Arel

相關問題