Ruby on rails 设计重定向到自定义登录页面(常规和管理部分)
我已经用Desive for Authantation系统启动了一个Rails项目。但在我的场景中,还有一个管理部分。因此,管理员和普通用户都使用Desive创建的“用户”模型。我在迁移模型中添加了“is_admin”字段。但这次我有两个主要问题 第一个是,我需要在管理部分有一个登录页面,它将使用Desive的登录方法,如果用户授权并查找“is_admin”字段,将用户重定向到管理页面 第二个是,应该有另一个登录页面的常规网站,人们会看到。这将不会查找“is_admin”字段,而是使用常规的designe登录表单 那么,这些都可以通过设计实现吗Ruby on rails 设计重定向到自定义登录页面(常规和管理部分),ruby-on-rails,authentication,ruby-on-rails-4,devise,Ruby On Rails,Authentication,Ruby On Rails 4,Devise,我已经用Desive for Authantation系统启动了一个Rails项目。但在我的场景中,还有一个管理部分。因此,管理员和普通用户都使用Desive创建的“用户”模型。我在迁移模型中添加了“is_admin”字段。但这次我有两个主要问题 第一个是,我需要在管理部分有一个登录页面,它将使用Desive的登录方法,如果用户授权并查找“is_admin”字段,将用户重定向到管理页面 第二个是,应该有另一个登录页面的常规网站,人们会看到。这将不会查找“is_admin”字段,而是使用常规的de
谢谢在应用程序控制器中放置一个after_sign_In函数,如下所示,该函数将检查用户角色,然后重定向
class ApplicationController < ActionController::Base
def after_sign_in_path_for(resource)
if resource.is_admin?
redirect_to admin_path
else
redirect_to user_path
end
end
end
class ApplicationController
我是否可以检测到用户是否点击了“/admin”,并且我想将用户重定向到管理部分的登录页面?在我的AdminController中,我有“在\u操作之前:验证\u用户!”但它重定向到“/users/sign\u In”。管理员和用户是否都有不同的登录页面?您可以覆盖authenitcate\u用户!函数来检查类似的情况。是的,它们有不同的登录页面。如果用户有“is_admin:true”,我将在管理员登录页面中进行检查,然后将_重定向到管理员面板,如果“false”,则无法访问管理员部分。所以我必须为它写一个助手?我建议你在操作authenitcate用户之前跳过!在管理员控制器中,然后在控制器中编写自定义私有函数,以重定向到管理员登录页面,因为他现在位于指向该控制器的url中。