我试图让 Devise 创建一个单一的用户模型,并让不同的角色成为一个单独的模型。我的用户模型(来自 rails g devise User)有一个电子邮件、名字、姓氏和角色字段。
角色是管理员、观众、竞争者。因此,我创建了 admin、spectator 和竞争者模型,它们都继承自 User 模型。
我遵循了设计和多个“用户”模型的最佳答案,我可以创建一个用户。但是,我的竞争对手模型迁移还具有其他模型不需要的其他信息,例如比赛名称和位置。当我执行 Competitor.create() 并输入创建设计用户所需的信息时,即使我对竞赛名称和位置的竞争对手模型有空约束,用户也会存储在数据库中。
当我做 Spectator.all 时,最近创建的竞争对手数据会显示出来,我认为它不应该......
我的问题是我应该如何设置它,以便除非提供他的比赛名称和位置,否则不会创建竞争对手用户。
另一个问题是为什么我做 Spectator.all 时会显示竞争对手的信息?