我正在尝试创建具有以下三种模型的Rails应用程序Shopper:Category,Items和Buyers。每个类别可以有很多物品(has_many),每个买家可以购买很多物品(has_many)。该应用程序需要用户登录页面。我已经为我的应用程序(购物者)安装了ActiveAdmin和Devise gem。如何使用这些gem创建用于登录,注销和注册的表单。如果已登录的用户与管理员名称和密码匹配,则必须显示管理面板(活动管理员),您可以在其中创建,更新和删除类别和项目;如果已登录的用户不是管理员(买方),则必须显示应用程序中的“项目”页面,买方可以在其中选择项目。我该怎么办?
我尝试过此How do I use Devise and ActiveAdmin for the same User model?,但不适用于我的申请。
虽然可以使用Devise验证不同的模型,但最适合您的情况的解决方案是为您的买方和管理员使用一个模型名称User
。然后,在基础数据库表中添加一个布尔列admin
,ActiveRecord将为该列自动在admin?
模型上提供User
方法。
然后,只有一个root
路线(在您的config/routes.rb
中),就像application#welcome
一样。然后,在该控制器操作中,您可以在管理面板或项目索引页面中查看if current_user.admin?
和redirect_to
。