Изменение разработки пути регистрации

#ruby-on-rails #ruby #devise

#ruby-on-rails #ruby #разработка

Вопрос:

Я хочу перенаправить пользователя на определенную страницу в зависимости от того, где он регистрируется в моем приложении. Например, если вы зарегистрируетесь из /users/sign_up, вы будете перенаправлены на домашнюю страницу, но если вы зарегистрируетесь из формы регистрации из /users/1, я хочу перенаправить вас обратно в профиль этого пользователя после регистрации. Возможно ли это с помощью Devise?

Комментарии:

1. Проверьте это github.com/plataformatec/devise/wiki /…

2. пожалуйста, внимательно прочитайте документацию, там подробно описано.

Ответ №1:

Попробуйте сделать, как показано ниже :

 class ApplicationController < ActionController::Base
  before_filter :remember_my_last_path

  def after_sign_up_path_for resource
    if cookies[:last_path].blank?
      super
    else
      cookies[:last_path]
    end
  end

  private 
  def remember_my_last_path
    cookies[:last_path] = request.fullpath
  end

end
  

Таким образом, вы устанавливаете хэш-значение last_path для своих файлов cookie и вызываете его в каждом контроллере. Когда вы нажимаете на register, вы вызываете метод devise после переопределенного вами метода_sign_up, а затем отправляете пользователя по определенному пути или по пути по умолчанию.

Надеюсь, это вам поможет.