我有一個名爲create.js.erb
的js文件,它位於我的視圖文件夾中。應該在我嘗試創建記錄時調用它,但不會被調用。我無法弄清楚爲什麼,而且完全誠實,甚至不知道我的應用如何在視圖文件夾中調用js文件,所以我不確定在這裏粘貼什麼代碼來幫助調試問題。Rails:視圖文件夾中的js文件沒有被調用
任何人都可以向我解釋視圖文件夾中的js是如何執行的,以及何時我想將js文件放入我的視圖文件夾而不是資產管道中?
我有一個名爲create.js.erb
的js文件,它位於我的視圖文件夾中。應該在我嘗試創建記錄時調用它,但不會被調用。我無法弄清楚爲什麼,而且完全誠實,甚至不知道我的應用如何在視圖文件夾中調用js文件,所以我不確定在這裏粘貼什麼代碼來幫助調試問題。Rails:視圖文件夾中的js文件沒有被調用
任何人都可以向我解釋視圖文件夾中的js是如何執行的,以及何時我想將js文件放入我的視圖文件夾而不是資產管道中?
* .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
希望幫助,如果您需要更多的幫助,請張貼代碼爲您的控制器和任何查看文件...
這是很有幫助的。謝謝!我一直在努力理解這一切。感謝這麼好的解釋! – Arel
沒問題,很高興幫助! – Jim
教程也很棒。謝謝! – Arel