2016-05-16 125 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