2012-01-10 9 views
11

Necesito la aplicación Rails para redirigirme a la página de inicio después de enviar el correo electrónico para enviarme las instrucciones de restablecer la contraseña. Idear, de forma predeterminada representa el formulario de inicio de sesión después de ingresar el correo electrónico.No se puede anular Controlador de contraseñas de inventarios

Así que estoy tratando de reemplazar el Devise::PasswordsController y cambiar su redirect_to, pero no tuvo éxito. De hecho, no creo que Rails siquiera esté evaluando mi clase. Podría ser un error muy estúpido, pero llevo medio día sin éxito.

Tomé la idea de anular el controlador de contraseñas de here.

Aquí está mi controlador:

class PasswordsController < Devise::PasswordsController 
    protected 
    def after_sending_reset_password_instructions_path_for(resource_name) 
    root_url 
    end 
end 

routes.rb:

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

me gustaría mencionar que he anulado Registations y sesiones de controladores de Idear en la misma aplicación, y que parecen trabajar multa.

+0

¿Qué versión de diseño estás usando? –

+0

Estoy usando el dispositivo 1.5.3 – abhijeetmisra

Respuesta

12

Debería ser posible reemplazar el controlador con la última versión del Legado (2.1.2).

class PasswordsController < Devise::PasswordsController 
    def new 
    super 
    end 

    def create 
    ..override method here.. 
    end 
end 

Y en config/routes.rb:

devise_for :users, controllers: { passwords: 'passwords', .. } 

Usted puede consultar con rake routes si Rails utiliza el PasswordsController derivada en lugar de la original, las rutas deben contener, por ejemplo, en lugar de passwords#newdevise/passwords#new.

3

creo que se olvidó de mencionar los cambios en las rutas:

devise_for :users, :controllers => {:sessions => "sessions", :passwords => "passwords"} 
Cuestiones relacionadas