Ruby 在Rails应用程序中处理具有多个帐户的用户的干式方法

Ruby 在Rails应用程序中处理具有多个帐户的用户的干式方法,ruby,activerecord,devise,ruby-on-rails-3.2,activemodel,Ruby,Activerecord,Devise,Ruby On Rails 3.2,Activemodel,这是一个学校的Rails应用程序。我正在为用户帐户使用Desive。到目前为止,每个用户都有一个.role角色,即管理员、教师或学生,该角色限制了用户在应用程序中可以访问和贡献的内容。我正在使用user.email登录。到目前为止,一切都很顺利 现在我意识到我的兄弟帐户有问题。用于登录的唯一的user.email实际上是家长的电子邮件地址(因为学生是未成年人),现在我必须向有两个或更多学生的家长说明。很明显,我不能为每个孩子都有一个学生帐户并使用相同的电子邮件地址,因为它必须是唯一的(我确实希望

这是一个学校的Rails应用程序。我正在为用户帐户使用Desive。到目前为止,每个用户都有一个
.role
角色,即
管理员
教师
学生
,该角色限制了用户在应用程序中可以访问和贡献的内容。我正在使用
user.email
登录。到目前为止,一切都很顺利

现在我意识到我的兄弟帐户有问题。用于登录的唯一的
user.email
实际上是家长的电子邮件地址(因为学生是未成年人),现在我必须向有两个或更多学生的家长说明。很明显,我不能为每个孩子都有一个
学生
帐户并使用相同的电子邮件地址,因为它必须是唯一的(我确实希望在验证中保留该要求)

考虑到我已经完成了大量的应用程序,有什么好办法来解释这种情况呢

我搜索了这个网站和其他网站,但没有真正找到任何可以解释这种情况的东西

我认为一种方法是将
用户
模型中的角色更改为家长,然后创建一个单独的
学生
模型。一个扮演家长角色的用户可以拥有很多:学生,但这对我来说并不合适


任何一般性的想法/概念,以及任何有助于我解决这一问题的文章或宝石的指针,都将不胜感激。

我不知道这是否是最好的方法,但一种方法是在所有学生电子邮件地址的家长电子邮件地址的名称部分附加一个兄弟姐妹唯一标识符。你可以这样做,当你想要“真实”的电子邮件地址时,它可以被剥离。实际上,这种方法有一些先例,这很有趣。它当然很容易实现,不会对我的模型造成太大的干扰,但我不确定它是否非常方便用户。我会在一个分支上尝试一下,看看感觉如何。你不必为任何给定家长的第一个孩子这样做,只需为第二个或更高的孩子这样做,代价是生成电子邮件的额外代码。你是否建议家长拥有两套不同的登录凭据,并登录到两个单独的帐户?理想情况下,我希望家长登录并在一个仪表板中查看所有孩子的详细信息。有人告诉我,这会影响到大约10%的家长。事实上,我假设你希望每个学生都有单独的账户。若你们只想要一个账户,那个么在我看来你们实际上是在谈论一个家长账户,而学生是一个独立的抽象概念。我认为你们是对的。我需要忘记在我目前的模型中实现这一点的想法,看看一个单独的学生帐户。谢谢