[英]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.rb
的welcome
方法
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.