首页 > 解决方案 > 在注册或新会话后设计自定义重定向

问题描述

所以我有一个 RSS 提要,其中包含您可以投票的博客文章,但首先您必须注册或登录才能投票,我正在使用设计来处理这个问题。我去了这个页面在此处输入链接描述

了解如何将默认重定向更改为 request.reffer,即用户在登录或注册之前所在的当前页面,但即使在我将其添加到我的应用程序控制器之后,它仍会重定向回根目录:

class ApplicationController < ActionController::Base
  protected
    def after_sign_in_path_for(resource)
      request.env['omniauth.origin'] || stored_location_for(resource) || root_path
    end
end

我是 Rails 和 Web 开发的新手,所以如果有人可以对我进行白痴证明,那将不胜感激。谢谢!

标签: ruby-on-railsauthenticationredirectdevise

解决方案


您可以通过将 stored_locations_for(resource) 设置为 nil 来走得更远,然后为每个操作设置不同的重定向,即:after_sign_in_path(resource)、after_sign_in_path(resource) 等等。

路线.rb

 devise_for :users, controllers: {sessions: 'users/sessions'}

注册控制器.rb

 class SessionsController < Devise::SessionsController

    protected

      def after_sign_up_path_for(resource)
        example_path
      end
    end

推荐阅读