Rails Devise только перенаправляет на фиксированный путь. Необходимо перенаправить обратно туда, откуда пришел пользователь, когда была активирована аутентификация - PullRequest
3 голосов
/ 22 января 2011

Работа над приложением Ruby on Rails с Devise.

По умолчанию Devise перенаправляет только на фиксированный путь, путь корневого приложения.Существуют защищенные URL-адреса, и если пользователь нажимает некоторые ссылки (например, «Задать вопрос» здесь), он отправляется на страницу / sign_in.При успешном входе в систему пользователь отправляется не в «Задать вопрос», а в «/».Есть идеи как это исправить?

Ответы [ 5 ]

4 голосов
/ 15 мая 2011

Это то, что я использую.Работает;)

class ApplicationController < ActionController::Base
  protect_from_forgery

  def after_sign_in_path_for(resource)
    if resource.is_a?(User)
      "/welcome"
    else
      super
    end
  end

end
2 голосов
/ 22 января 2011

Вы должны сохранить URL-адрес в хэше сеанса, чтобы он работал.

session[:return_to] ||= request.referer

Затем перенаправить на него в действии обновления после успешного сохранения:

redirect_to session[:return_to]
1 голос
/ 07 ноября 2011

Makinng исходный запрос GET вместо POST решил проблему.Первоначально было неправильно перенаправлять на POST.К сожалению, если пользователь пытался обновить какие-либо данные, которые он будет вынужден повторно ввести и повторно отправить, решение здесь состоит в том, чтобы запретить пользователям вводить любые данные, которые они не смогут предоставить, если они не вошли в систему.

0 голосов
/ 22 апреля 2013

Чтобы перенаправить пользователей обратно на страницу, на которой они были, когда щелкали ссылку «Войти», я использую:

class ApplicationController < ActionController::Base
  protect_from_forgery

  def after_sign_in_path_for(resource)
    :back
  end
end
0 голосов
/ 22 января 2011

Попробуйте использовать этот метод в вашем application_controller.rb

def after_sign_in_path_for(resource)
  (session[:"user.return_to"].nil?) ? "/" : session[:"user.return_to"].to_s
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...