首页 > 解决方案 > 如何在 Rails 6 中使用 acitve admin 登录到管理员帐户和用户帐户?

问题描述

我正在尝试使用三个模型创建一个 Rails 应用程序 Shopper:类别、项目和买家。每个类别可以有很多商品(has_many),每个买家可以购买很多商品(has_many)。此应用程序需要用户登录页面。我已经为我的应用程序(Shopper)安装了 ActiveAdmin 和 Devise gem。如何使用这些 gem 创建用于登录、注销和注册的表单。如果登录用户与管理员名称和密码匹配,则必须显示管理面板(活动管理员),您可以在其中创建、更新和删除类​​别和项目,如果登录用户不是管理员(买家),则必须显示应用程序中的“项目”页面,买家可以在其中选择项目。我怎样才能做到这一点?

我试过这个How do I use Devise and ActiveAdmin for the same User model? 但它不适用于我的申请。

标签: ruby-on-railsdevise

解决方案


虽然可以使用 Devise 对不同的模型进行身份验证,但针对您的情况最常见的解决方案是User为您的买家和管理员设置一个模型名称。然后在底层数据库表中添加一个布尔列admin,ActiveRecord 将自动为其提供模型admin?上的方法User

然后,只需拥有一条root路线(在您的 中config/routes.rb),例如application#welcome. if current_user.admin?然后,在该控制器操作中,您可以检查 redirect_to您的管理面板或您的项目索引页面。


推荐阅读