我的应用程序中有两个模型,User和Admin。所以,我将这些代码放在我的应用程序控制器中:
def after_sign_in_path_for(user)
root_path
end
def after_sign_in_path_for(admin)
admin_path
end
但是,它只执行最后一个(admin)。因此,每当我以用户身份登录时,我都会被重定向到admin_path而不是root_path。有什么想法吗?
答案 0 :(得分:1)
如果您有User
和Admin
两个单独的模型,请执行以下操作:
def after_sign_in_path_for(resource)
resource.is_a?(Admin) ? admin_path : root_path
end
答案 1 :(得分:0)
Ruby理解您正在重新定义after_sign_in_path_for
,因此定义的最后一个将生效。
您可以像这样修改代码以使其正常工作:
def after_sign_in_path_for(user)
user.admin? ? admin_path : root_path
end
只需确保user.admin?
是检查用户是否具有管理员角色的功能!