繁体   English   中英

Rails Devise将经过身份验证的用户重定向到特定路径

[英]Rails Devise redirecting authenticated user to a specific path

问题

使用Devise时,应该已经将user重定向到Devise控制器registrations#edit操作的edit_user_registration_path

描述

routes.rb根目录设置为root :to => 'main#welcome' 即使已登录,用户仍将重定向到此页面。

非常感谢Fabrizio

Devise提供了user_signed_in? 方法。

这将是main_controller.rbwelcome方法

def welcome 

    if user_signed_in?
        redirect_to edit_user_registration_path
    else
        // put other page in here
    end        
end

也许您正在寻找的是一种在用户登录后将其重定向到某个地方的方法。应该这样做。 将其放在app/controllers/application_controller.rb并放置在您要带用户前往的路径中

  def after_sign_in_path_for(resource)
    edit_user_registration_path # or any other path needed
  end

这可能是误导性的,但用户是通过色器件签署后注册的方法叫做内部设计:: RegistrationsController#创建

class Devise::RegistrationsController < DeviseController

  # POST /resource
  def create
    build_resource(sign_up_params)
    # omitted code
    resource.save
    sign_up(resource_name, resource)

用户哪个sign_in()

def sign_up(resource_name, resource)
  sign_in(resource_name, resource)
end

所以要增强的方法是

def after_sign_in_path_for(resource)
  edit_user_registration_path
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM