0

好的,所以我有一个删除用户按钮

  <button id="delete" data="<%= user_path(@user) %>">Delete User</button>

这是使用jquery ui

   $("#delete").button();

我想要点击删除用户所以我有

   $("#delete").click(function(){
      if(confirm("Are you sure?")){
          var url = $(this).attr('data');
          $.post(url, {_method:'delete'}, null, "script");
          document.location = '<%= users_path %>';
          return false;
      } else {
          return false;
      }
   });

一切都很好,但是当页面刷新时,我的销毁操作没有闪光

def destroy
  User.find(params[:id]).destroy
  flash[:success] = "User deleted."
  redirect_to users_path
end

关于如何解决这个问题或重组我所做的任何建议。我不能只使用 link_to 或 button_to 进行样式设置

4

1 回答 1

3

Flash 数据仅针对以下请求存在。它正在被您的 AJAX 回发“吃掉”。

当您post通过时$.post,您实际上是在发出两个请求;请求delete遵循重定向并向. 请求会看到闪存数据。然后,当您将您的设置为时,将不再有任何要呈现的闪存数据。getusers_pathdocument.locationusers_path

您绝对不应该通过手动 AJAX 来处理这个问题。允许您的链接像常规链接一样被点击,并允许 Rails 的 UJS 处理回发/确认对话框。除非您做错了什么,否则这绝不会影响您设置链接样式的能力。

于 2012-04-10T17:48:16.623 回答