 <p>Use redirect_to with status 303</p> <pre><code>def destroy @task = Task.find(params[:id]) @task.destroy redirect_to :action =&gt; :index, status: 303 end </code></pre> <p>redirect_to documentation says:</p> <p><a href="http://api.rubyonrails.org/classes/ActionController/Redirecting.html">http://api.rubyonrails.org/classes/ActionController/Redirecting.html</a></p> <p>If you are using XHR requests other than GET or POST and redirecting after the request then some browsers will follow the redirect using the original request method. This may lead to undesirable behavior such as a double DELETE. To work around this you can return a 303 See Other status code which will be followed using a GET request.</p>