2014-07-18 103 views
1

我不知道如何銷燬點擊使用咖啡腳本/ jQuery的記錄。通常我會使用button_to rails helper,但在這種情況下我不能。 (?方面)刪除記錄沒有button_to幫助使用jquery /咖啡腳本

<form id="instance_delete" action="<%= url_for my_url_delete_path(current_user.id, delete_this.id) %>" 
data-remote="true" method="delete"><%= link_to "Delete", "#", id: "delete_record_button"%> </form> 


($ '#delete_record_button').click (e) => 
    e.preventDefault() 
    ($ e.target.form).submit() 

回答

2

有,因爲不是所有的瀏覽器使用的HTTP動詞有點劈標準HTTP動詞:

$('#delete_record_button').click (e) => 
    e.preventDefault() 
    $.post(
    '#{path_to_update_action}', 
    { user_id: #{current_user.id}, id: #{delete_this.id}, '_destroy': true }, 
    handler 
    ) 

在哪裏處理程序可以是一個匿名函數或定義的回調。

我使用額外的POST參數_destroy設置爲true爲了發送記錄上的銷燬電話。


如果你不想Rails的視圖/ CoffeeScript的每次使用時重新編譯您的資產(在Linux系統上:微不足道的,在Windows上:非常顯著),您可以使用此解決方法:

# haml file or seperated files but both included: 
:javascript 
    var path_to_update_action = "#{path_to_update_action}"; 
    var current_user_id = #{current_user.id}; 
    var id_to_delete = #{delete_this.id}; 

:coffeescript 
    $('#delete_record_button').click (e) => 
    e.preventDefault() 
    $.post(
     path_to_update_action, 
     { user_id: current_user_id, id: id_to_delete, '_destroy': true }, 
     handler) 

參考文獻:

+0

我在資產管道中有我的咖啡腳本,所以我不認爲我有權訪問rails助手/變量。咖啡腳本是否會通過.click事件提取變量? – TacoMaster6000

+0

它可以訪問助手/變量。問題在於Rails會在每次執行操作時重新編譯JS資源,以便在JS中使用Ruby代碼。有解決方法,我更新我的答案 – MrYoshiji