2012-04-10 4 views
0

[OK]をjqueryのUIRailsのフラッシュメッセージはどこにありますか?私は、削除、ユーザーのボタンを持っているので、

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

を使用している

<button id="delete" data="<%= user_path(@user) %>">Delete User</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

ビューのどこにでもフラッシュメッセージを表示しましたか?/ – nzifnab

+0

レンダリングだけど、jqueryポストが問題を引き起こしていると思うのですが、 – Trace

+0

私はちょうどlink_toを使うとフラッシュメッセージが表示されます – Trace

答えて

3

フラッシュデータは、次の要求にのみ存在します。あなたのAJAXポストバックによって "食べられ"ています。

postから$.postになると、実際には2つのリクエストがあります。 deleteリクエストがリダイレクトに続き、getリクエストがusers_pathに発行されます。 そのリクエストにフラッシュデータが表示されます。 document.locationusers_pathに設定すると、レンダリングするフラッシュデータがなくなります。

手渡しAJAXで絶対に処理しないでください。あなたのリンクを通常のリンクのようにクリックし、RailsのUJSがポストバック/確認ダイアログを処理できるようにします。これはにはありませんあなたが何か非常に間違っていない限り、リンクをスタイルする能力に影響します。

関連する問題