Tengo un proyecto de Rails 3 con Devise, confirmable habilitado para que el usuario tenga que confirmar su cuenta a través del correo electrónico después del registro. Actualmente, el proyecto devuelve al usuario a la página de inicio de sesión y lanza un aviso de "Se ha registrado con éxito ...". Lo que quiero hacer en su lugar es redirigirlos a una página de "agradecimiento", con más instrucciones (revise su correo electrónico, carpeta de spam, bla, bla).Rails 3 and Devise: redireccionando a la página siguiente al registro (confirmable)
Mi primera parada fue en la wiki de Devise, donde yo found this page. Parecía bastante fácil, hice las siguientes alteraciones y seguido las instrucciones exactamente ...
/app/controllers/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
protected
def after_sign_up_path_for(resource)
"http://google.com"
end
end
/config/routes.rb
devise_for :users, :controllers => { :registrations => "registrations" }
La única modificación que tuve que hacer sobre la dirección fue mover la carpeta "registros" de la carpeta/app/views/idee view a la carpeta superior/app/views, como una e rror devolvió que las vistas ahora faltaban. De todos modos, a pesar de que parece que la anulación del controlador parece funcionar (no creo que las vistas se hayan roto originalmente), esas instrucciones NO funcionan ... la página ignora el after_sign_up y regresa a la página de inicio de sesión después de iniciar sesión.
Fui a buscar en Internet, incluyendo otros hilos de Stack Overflow, pero nada de lo que encontré me funcionó ... las respuestas confunden la redirección de inicio de sesión para iniciar sesión, o lo que hacen es cambiar la redirección después de iniciar sesión (ya que Devise normalmente se registra automáticamente después del registro sin confirmación habilitada).
Otras cosas que he intentado ...
Moviendo el after_sign_up_path_for (recurso) en el controlador de la aplicación. No funciona Por extraño que parezca, haciendo lo mismo con after_sign_in_path_for (resource) e iniciando sesión como un usuario DOES redirigir.
Moviendo el registrations_controller.rb de/app/controllers/a la carpeta/app/controllers/users y actualizando todas las rutas/referencias/etc. en consecuencia. No vayas.
Copiando los registros de registro de Devise_controller.rb en mi propio registrations_controller.rb. No funcionó, solo vomitó un error y lo devolví todo.
Intenté def after_inactive_sign_up_path_for (resource), ya que pensé que quizás el hecho de que la cuenta aún no estaba activa era la culpable. Esto también es ignorado.
También vale la pena mencionar que he intentado reiniciar mi proyecto después de estos cambios importantes, pero no se necesita nada.
¿Alguien ha tenido éxito al sacar esto adelante con la habilitación confirmable?
que estaba usando Diseñar 1.1.8, no había considerado la actualización de la gema. De todos modos, actualicé Devise a 1.2.1 (así como Rails 3.0.5 y todas las otras gemas), pero todavía se niega a redirigir, solo regresa a la página de inicio y muestra el mensaje "Se ha registrado con éxito. , no pudimos iniciar sesión porque su cuenta no está confirmada ". (Que es un mensaje nuevo para mí, pero supongo que agregaron en una de las actualizaciones de Devise.) Mi código es idéntico al suyo. Pero lo de arriba 'after_sign_up_path_for' es todo lo que tengo en RegistryController, ¿es suficiente o necesito más en mi controlador? – Shannon
Además, también arrojé lo anterior en mi gemfile e intenté con Devise 1.3.0.dev, y también ignoré la redirección de mi controlador. – Shannon
Espera, creo que lo tengo. Cambié after_sign_up_path_for con after_inactive_sign_up_path_for, y ahora está redirigiendo a Google. Así que la respuesta final fue esta, junto con la actualización de la gema como se sugirió anteriormente. Muchas gracias – Shannon