2012-04-10 45 views
0

好了,所以我有一个删除用户按钮Rails中的flash消息在哪里?

<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来进行造型

+0

你是否在视图的任何位置呈现了Flash消息?如果你不显示它们,设置一个'flash'将不会执行任何操作:/ – nzifnab 2012-04-10 17:45:41

+0

它的渲染,但我认为问题在于jquery文章引起的问题 – Trace 2012-04-10 17:47:11

+0

当我使用link_to – Trace 2012-04-10 17:48:34

回答

3

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

当你post通过$.post,你实际上提出两个请求; delete请求遵循重定向并向users_path发出get请求。 请求查看闪存数据。当您将document.location设置为users_path时,不再需要渲染任何闪光数据。

你绝对不应该通过手动AJAX处理这个问题。允许您的链接像常规链接一样点击,并允许Rails的UJS处理回发/确认对话框。这应该在没有办法影响你的风格链接的风格,除非你做的事情非常错误。