[英]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.