2016-05-16 82 views
0

我有一個自定義對話框,如下所示:自定義對話框模式:刪除

$(function() { 
    $.rails.allowAction = function(link) { 
     if (!link.attr('data-confirm')) { 
      return true; 
     } 
     $.rails.showConfirmDialog(link); 
     return false; 
    }; 
    $.rails.confirmed = function(link) { 
     link.removeAttr('data-confirm'); 
     return link.trigger('click.rails'); 
    }; 
    return $.rails.showConfirmDialog = function(link) { 
     var html, message; 
     message = link.attr('data-confirm'); 
     html = "<div class=\"modal\" id=\"confirmationDialog\">\n <div class=\"modal-dialog\">\n <div class=\"modal-content\">\n  <div class=\"modal-header\">\n  <a class=\"close\" data-dismiss=\"modal\">×</a>\n  <h4>" + message + "</h4>\n  </div>\n  <div class=\"modal-footer\">\n  <a data-dismiss=\"modal\" class=\"btn btn-info\">" + "Cancel" + "</a>\n  <a data-dismiss=\"modal\" class=\"btn btn-primary confirm\">" + "Confirm" + "</a>\n  </div>\n </div>\n </div>\n</div>"; 
     $(html).modal(); 
     return $('#confirmationDialog .confirm').on('click', function() { 
      return $.rails.confirmed(link); 
     }); 
    }; 
}); 

自定義對話框工作時,我使用方法:刪除,但我也有一個刪除按鈕沒有按不使用方法:

<%= link_to delete_file_path(current_user), data: { confirm: "Are you sure?" }, class: "btn btn-default btn-sm " do %> 
     <span class="glyphicon glyphicon-trash"></span> 
    <% end %> 

使用該鏈接按鈕時,它會顯示自定義對話框,但是當我單擊確認時沒有任何反應。

回答

1

控制器操作由客戶端發送的URL和HTTP方法進行路由。由於您嘗試點擊destroy操作,因此您需要發送delete操作以及您的請求,否則link_to會發送一個GET,這可能會導致404或與您預期的操作不同。這就是爲什麼當method: :delete被阻止時,鏈接的行爲不同。

+0

但這個刪除鏈接運行良好,沒有自定義對話框,如果我把方法刪除它說'沒有路由匹配[刪除]「/delete_file.1」 – terrorista

+0

然後你的幫助器方法不符合你的路由定義。你可以在這裏發佈你的'routes.rb'嗎? –

+0

'get'delete_file'=>「analyze#delete_file」'。這是沒有辦法的::刪除 – terrorista