设计重定向到自定义登录页面(常规和管理部分)

时间:2015-04-21 21:42:30

标签: ruby-on-rails authentication ruby-on-rails-4 devise

我已经开始使用Devise进行自定义系统的Rails项目。但在我的场景中,还有一个管理部分。因此,管理员和普通用户都使用"用户"模型,由Devise创建。我添加了#34; is_admin"字段到具有迁移的模型。但这次我有两个主要问题。

首先,我需要在admin部分有一个登录页面,它将使用Devise的登录方法,如果用户自动验证并查找" is_admin"用于将用户重定向到管理页面的字段。

第二个是,应该有常规站点的另一个登录页面,人们会看到。这不会寻找" is_admin"字段并将使用常规的Devise登录表单。

Devise可以实现这些吗?

由于

1 个答案:

答案 0 :(得分:0)

在应用程序控制器中放置一个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