#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, а затем отправляете пользователя по определенному пути или по пути по умолчанию.
Надеюсь, это вам поможет.