2012-04-10 85 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處理回發/確認對話框。這應該在沒有辦法影響你的風格鏈接的風格,除非你做的事情非常錯誤。