这是一所学校的Rails应用程序。我正在使用Devise用户帐户。到目前为止,每个用户都有.role
admin
,teacher
或student
,这限制了用户可以在应用中访问和贡献的内容。我正在使用user.email
登录。到目前为止,一切正常。
现在我意识到我的兄弟帐户存在问题。用于登录的唯一user.email
实际上是父母的电子邮件地址(因为学生是未成年人),现在我必须考虑有两个或更多孩子是学生的父母。我显然不能为每个孩子设置一个student
帐户并使用相同的电子邮件地址,因为它必须是唯一的(我确实希望在验证中保留这些要求)。
鉴于我已经完成了应用程序的大量工作,对于这种情况,什么是一种很好的DRY方式?
我搜索了这个网站和其他网站,但没有找到任何可以解释这种情况的内容。
我认为将User
模型中的角色更改为父级,然后使用单独的Student
模型。然后,具有父母角色的用户可以has_many :students
,但这并不适合我。
任何一般的想法/概念都会受到赞赏,对于帮助我解决这些问题的文章或宝石的指针也是如此。
答案 0 :(得分:0)
我不知道这是否是最好的方式,但一种方法是在所有学生电子邮件地址的父母电子邮件地址的名称部分附加一个兄弟唯一标识符。你可以这样做,当你想要“真正的”电子邮件地址时它可以被剥离。根据{{3}},这种方法实际上有一些先例。