【问题标题】:DRY way to handle users with multiple accounts in Rails app在 Rails 应用程序中处理具有多个帐户的用户的 DRY 方式
【发布时间】:2013-08-14 12:17:18
【问题描述】:

这是一个适用于学校的 Rails 应用程序。我正在为用户帐户使用设计。到目前为止,每个用户都有adminteacherstudent 中的.role,这限制了用户可以在应用程序中访问和贡献的内容。我正在使用user.email 登录。到目前为止一切正常。

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

鉴于我已经完成了大量应用程序,有什么好的 DRY 方法可以解决这种情况?

我已经搜索了这个网站和其他网站,但没有真正找到任何导致这种情况的原因。

我认为的一种方法是将User 模型中的角色更改为父级,然后有一个单独的Student 模型。然后,具有 parent 角色的用户可以 has_many :students 但这并不适合我。

我们将不胜感激任何一般性的想法/概念,以及任何对我有帮助的文章或宝石的指针。

【问题讨论】:

    标签: ruby activerecord devise ruby-on-rails-3.2 activemodel


    【解决方案1】:

    我不知道这是否是最好的方法,但一种方法是将兄弟姐妹唯一标识符附加到所有学生电子邮件地址的家长电子邮件地址的名称部分。你可以这样做,当你想要“真实”的电子邮件地址时,它可以被剥离。根据http://www.plankdesign.com/blog/2013/06/testing-infinite-unique-email-addresses-with-gmail/,这种方法实际上有一些先例。

    【讨论】:

    • 这很有趣。在不对我的模型造成太大干扰的情况下,它肯定很容易实现,但我不确定它是否对用户非常友好。我会在树枝上试一试,看看感觉如何。
    • 您不必为任何给定父母的第一个孩子执行此操作,只需为第二个及以后的孩子执行此操作,代价是生成电子邮件的一些额外代码。
    • 您是否建议父母拥有 2 组不同的登录凭据并登录 2 个单独的帐户?理想情况下,我希望父母登录并在一个仪表板中查看他们所有孩子的详细信息。我被告知这将影响大约 10% 的父母。
    • 我实际上假设您希望每个学生都有单独的帐户。如果您只想要一个帐户,那么在我看来,您实际上是在谈论 parent 帐户,而 student 是一个单独的抽象。
    • 我认为你是对的。我需要忘记让它在我当前的模型中工作的想法,并查看一个单独的学生帐户。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多