Не удается переопределить пароль паролей
Мне нужно, чтобы мое приложение Rails перенаправлялось на домашнюю страницу после отправки электронной почты для отправки мне инструкций пароля reset. Devise, по умолчанию делает знак в форме после ввода сообщения.
Поэтому я пытаюсь переопределить Devise::PasswordsController
и изменить его redirect_to
, но не добился успеха. На самом деле, я не думаю, что Rails даже забирает мой класс. Это может быть очень глупая ошибка, но я был на ней полдня без успеха.
Я принял идею переопределить контроллер паролей из здесь.
Здесь мой контроллер:
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"}
Я хотел бы упомянуть, что в этом же приложении у меня есть переопределенные Regiseations и Session Controllers, и они, похоже, работают нормально.
Ответы
Ответ 1
Должно быть возможно переопределить контроллер с последней версией Devise (2.1.2).
class PasswordsController < Devise::PasswordsController
def new
super
end
def create
..override method here..
end
end
И в config/routes.rb
:
devise_for :users, controllers: { passwords: 'passwords', .. }
Вы можете проверить с помощью rake routes
, если Rails использует производный PasswordsController
вместо исходного, маршруты должны содержать, например, passwords#new
вместо devise/passwords#new
.
Ответ 2
Я думаю, вы забыли указать свои изменения в маршрутах:
devise_for :users, :controllers => {:sessions => "sessions", :passwords => "passwords"}