0

レールでシングルページアプリケーションを構築しています。このようにボタンをクリックすると、ルートページにパーシャルが正常に入力されます。

<div class="span12" style="margin-bottom:20px;">
            <%= link_to "Messages", "/messages", :class=>"btn btn-large btn-primary span12", :remote => true %>
</div> 

_index.html.erbこれにより、パーシャルが正常にレンダリングされます。このページには、メッセージのリストとそれらを削除するためのリンクがあります。localhost:3000/messagesそれらを削除すると、テンプレートが見つからないというエラーが発生します。これは、メッセージを削除した後に index.html.erb を探してリダイレクトするためです。これは私の破棄アクションで、メッセージを削除した後にリダイレクトされます

if @message.destroy
      flash[:notice] = "Message was successfully deleted"
      redirect_to messages_path
else
      flash[:error] = "Message could not be deleted please try again"
      redirect_to messages_path
end

_index.html.erbこのアクションでパーシャルを再度レンダリングするにはどうすればよいですかlocalhost:3000/

4

1 に答える 1

0

メッセージを削除するたびにインデックスを部分的にレンダリングしないでください。それはjavascriptで行う必要があります。

次のようなことができると思います:

$(".messages").on(".message .destroy-link", "ajax:success", function(data) {
    var $link = $(this);
    $link.closest(".message").remove();
})

そして、コントローラーでは、 のどこにもリダイレクトしませんformat.js

于 2013-02-28T19:28:03.753 に答える