红宝石在轨道上

我想,如果用户登录后,它会自动重定向到他们以前的位置,但这似乎永远不会发生,它总是重定向回根位置。 从阅读关于这个设计的文档看来,这个功能应该是可行的。 我是否以某种方式错误地使用它和/或我如何强制它存储位置并重定向?

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

滚动到此Google小组页面的底部,并查看覆盖的'stored_location_for'设计方法。 我在我的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'参数手动创建位置。

链接地址: http://www.djcxy.com/p/49013.html

上一篇: ruby on rails

下一篇: Recommended approach for presenting formatted text in Android?