Пользовательский контроллер устройства перенаправляет на неверный путь - PullRequest
0 голосов
/ 13 июня 2019

Мои маршруты регистрации: users / sign_up / speed1 и т. Д. Однако, если есть ошибка устройства, такая как пароль не совпадает, он перенаправляет пользователя на путь «/ users».Функциональность он должен перенаправить обратно на ту же страницу и позволить пользователю повторно ввести новый пароль.Любое обновление по этому поводу?

class RegistrationsController < Devise::RegistrationsController
  def new
    super
  end

  def create
    super
  end

  def update
    super
  end

  def speed1
    build_resource
    yield resource if block_given?
    respond_with resource
  end

  def speed2
    build_resource
    yield resource if block_given?
    respond_with resource
  end

  def speed3
    build_resource
    yield resource if block_given?
    respond_with resource
  end

  def speed4
    build_resource
    yield resource if block_given?
    respond_with resource
  end

  def speed5
    build_resource
    yield resource if block_given?
    respond_with resource
  end

  protected

  def after_sign_up_path_for(resource)
    if current_user.role == 'speed1' || current_user.role == 'speed2' || current_user.role == 'speed3' || current_user.role == 'speed4' || current_user.role == 'speed5'
      '/subscription/new' # Or :prefix_to_your_route
    else
      '/'
    end
  end
end

Вот мой файл маршрута, который у меня есть

devise_for :users, :controllers => {:registrations => "registrations"}
  devise_scope :user do
    get 'users/sign_up/speed1', to: 'registrations#speed1'
    get 'users/sign_up/speed2', to: 'registrations#speed2'
    get 'users/sign_up/speed3', to: 'registrations#speed3'
    get 'users/sign_up/speed4', to: 'registrations#speed4'
    get 'users/sign_up/speed5', to: 'registrations#speed5'
  end

1 Ответ

0 голосов
/ 14 июня 2019

Вы можете добавить это к своему application_controller.rb, оно вернется к последней странице, которую посетил пользователь, или root_path

private

# If your model is called User
def after_sign_in_path_for(resource)
  session["user_return_to"] || root_path
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...