videos sobre signos requisitos recibimos que para niños historia confirmacion catolica adolescentes ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

ruby-on-rails - signos - video sobre la confirmacion para adolescentes



Diseñar redirigir después de la confirmación (6)

¿Has consultado la wiki de Devise ? Explica cómo hacerlo, con after_signup_path_for siendo la ruta para definir en su caso.

De la wiki:

Crear un nuevo controlador RegistrosController:

class RegistrationsController < Devise::RegistrationsController protected def after_sign_up_path_for(resource) ''/an/example/path'' end end

Y agrega una ruta para usarlo:

devise_for :users, :controllers => { :registrations => "registrations" }

¿Cómo puedo crear una redirección de confirmación posterior en el diseño?

Antes de agregar el confirmation module la after_sign_up_path funcionó bien por primera vez, pero ahora cuando hago clic en el enlace de confirmación en el correo electrónico, redirige a la ruta que establecí para la ruta de acceso posterior (perfil de usuario).

Mi objetivo aquí es crear un asistente de formulario y una página de "inicio" para recopilar información adicional. La advertencia obvia es que esta redirección solo ocurrirá una vez, luego de la confirmación.

He intentado algunas otras soluciones que se han publicado en la pila, pero ninguna de ellas parece funcionar más.


Acabo de terminar todo esto y ninguna de las otras respuestas funcionó (2015-04-09 con el dispositivo 3.4.1).

Lo que quería era después de la suscripción, el usuario es redirigido a la página de inicio de sesión con un mensaje sobre un correo electrónico de confirmación. Para que funcione, esto es lo que tenía que hacer:

class RegistrationsController < Devise::RegistrationsController protected # This is the method that is needed to control the after_sign_up_path # when using confirmable. def after_inactive_sign_up_path_for(resource) new_user_session_path end end

EDITAR: Acabo de encontrar este comentario a continuación, que me habría enviado exactamente donde necesitaba estar mucho antes.

Aquí está la referencia al after_inactive_sign_up_path_for que menciona Niels: Devise wiki - marrossa 13 de noviembre de 12 a 3:38


Esencialmente, desea cambiar esta línea del Controlador de Confirmaciones Devise:

https://github.com/plataformatec/devise/blob/master/app/controllers/devise/confirmations_controller.rb#L25

Entonces, esto significa que debes anular la acción de mostrar. Simplemente modifique la ruta feliz de esa declaración "if" en la acción show al contenido de su corazón:

class ConfirmationsController < Devise::ConfirmationsController def new super end def create super end def show self.resource = resource_class.confirm_by_token(params[:confirmation_token]) if resource.errors.empty? set_flash_message(:notice, :confirmed) if is_navigational_format? sign_in(resource_name, resource) respond_with_navigational(resource){ redirect_to confirmation_getting_started_path } else respond_with_navigational(resource.errors, :status => :unprocessable_entity){ render_with_scope :new } end end end

Y una ruta delimitada para ello (pongo la vista y la acción en el controlador de registros pero puede cambiarlo a lo que sea):

devise_for :users, controllers: { confirmations: ''confirmations'' } devise_scope :user do get ''/confirmation-getting-started'' => ''registrations#getting_started'', as: ''confirmation_getting_started'' end

La acción de mostrar predeterminada se refiere al método protegido after_confirmation_path_for , por lo que como otra opción, puede modificar lo que devuelve ese método.


La confirmation_path también debe configurarse al trabajar con refinerías integradas en una aplicación de rieles


La solución ofrecida por @Lee Smith funciona a la perfección, pero deseo agregar una pequeña adición, es decir , no necesitamos agregar la acción nueva y crear al reemplazar el controlador de confirmaciones Devise para este caso.

Como:

class ConfirmationsController < Devise::ConfirmationsController def show self.resource = resource_class.confirm_by_token(params[:confirmation_token]) if resource.errors.empty? set_flash_message(:notice, :confirmed) if is_navigational_format? sign_in(resource_name, resource) respond_with_navigational(resource){ redirect_to your_desired_redirect_path } else respond_with_navigational(resource.errors, status: :unprocessable_entity){ render_with_scope :new } end end end

Luego, en el archivo de ruta, simplemente agregue el enrutamiento para el controlador de confirmaciones.

devise_for :users, controllers: { confirmations: "confirmations" }


Una forma menos intrusiva de lograr esto podría estar anulando el método after_confirmation_path_for de Devise::ConfirmationsController .

Crea un nuevo confirmations_controller.rb en el directorio de app/controllers :

class ConfirmationsController < Devise::ConfirmationsController private def after_confirmation_path_for(resource_name, resource) your_new_after_confirmation_path end end

En config/routes.rb , agregue esta línea para que Devise use su ConfirmationsController personalizado. Esto supone que Devise opera en la tabla de users (puede editar para que coincida con la suya).

devise_for :users, controllers: { confirmations: ''confirmations'' }

Reinicie el servidor web, y debería tenerlo.