devise sign_in_and_redirect никогда не работает - PullRequest
7 голосов
/ 20 ноября 2010

Хотелось бы, чтобы, если после входа в систему пользователь автоматически перенаправлял на свое прежнее местоположение, но, похоже, этого никогда не происходит, он всегда перенаправляет обратно в корневую папку. Из прочтения документации по разработке кажется, что эта функциональность должна работать. Я использую это как-то неправильно и / или как заставить его сохранить местоположение и перенаправить независимо?

http://rubydoc.info/github/plataformatec/devise/master/Devise/Controllers/Helpers#stored_location_for-instance_method

authentication = UserToken.find_by_provider_and_uid(omniauth['provider'], omniauth['uid'])

if authentication
  flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => omniauth['provider']
  sign_in_and_redirect(:user, authentication.user)
else

1 Ответ

4 голосов
/ 02 декабря 2010

Прокрутите вниз до этой страницы группы Google и проверьте переопределенный метод сохраненного местоположения для хранения.У меня есть адаптированная версия этого в моем application_controller, которая выглядит следующим образом:

  def stored_location_for(resource)
    if current_user && params[:redirect_to]
      flash[:notice] = "Congratulations, you're signed up!"
      return params[:redirect_to]
    end
    super( resource ) 
  end

Это должно позволить вам создать местоположение вручную, передав параметр redirect_to.

...