¿Cómo hago para que mi nuevo formulario de registro de Devise sea AJAXified?

Lo que quiero que ocurra es cuando la cuenta se haya creado con éxito, el formulario que se envió debe desaparecer y debe aparecer un mensaje (según el estado del registro).

Si fue exitoso, deberían ver un simple "Gracias. Por favor revise su correo electrónico".

Si no fue así, deberían ver un mensaje apropiado, como "Lo sentimos, ese correo electrónico ya ha sido recibido".

Esta es mi forma:

<div class="nine columns offset-by-three sign-up-form">
  <%= form_for(resource, :as => resource_name, :class => "send-with-ajax", :url => user_registration_path(resource), :validate => true, :html => { :id => 'user_new' }) do |f| %>
    <div class="six columns alpha"> 
       <%= f.text_field :email, :placeholder => "[email protected]", :input_html => {:autofocus => true}, :validate => true %>
    </div>              
    <div class="three columns sign-up alpha">
      <%= f.submit :label => "Submit", :value => "Sign Me Up!"  %>
      <div class="ajax-response"><%= devise_error_messages! %></div>
    </div>
    <% end %>
  </form>
</div>

Este es micreate.js.erb:

$(document).ready(function() {    
  $('#user_new').submit(function() { 
    $(this).fadeOut(600).hide(); 
    $(this).append('<h3>Thank You. You should receive an email shortly.</h3>').fadeIn(1000);
  });    
)}

Pero esto no funciona correctamente. Por ejemplo, cuando presiono Enviar y la dirección de correo electrónico ya está en la base de datos, no sucede nada.

PD Sé que si fuera un formulario 'regular', lo haríaformat.js dentro del controlador que maneja este formulario y resuelve los códigos de estado y los mensajes allí, pero Devise es una bestia diferente y no quiero generar nuevos controladores y anular funciones que no debería, cuando no estoy completamente cómodo .

Respuestas a la pregunta(2)

Su respuesta a la pregunta