Подтвердить что ты не робот

Не удается переопределить пароль паролей

Мне нужно, чтобы мое приложение 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, и они, похоже, работают нормально.

4b9b3361

Ответ 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"}