簡體   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