【发布时间】:2013-08-14 12:17:18
【问题描述】:
这是一个适用于学校的 Rails 应用程序。我正在为用户帐户使用设计。到目前为止,每个用户都有admin、teacher 或student 中的.role,这限制了用户可以在应用程序中访问和贡献的内容。我正在使用user.email 登录。到目前为止一切正常。
现在我意识到兄弟帐户存在问题。用于登录的唯一user.email 实际上是父母的电子邮件地址(因为学生是未成年人),现在我必须说明有两个或更多孩子的父母是学生。我显然不能为每个孩子都拥有一个 student 帐户并使用相同的电子邮件地址,因为它必须是唯一的(我确实希望在验证中保持要求)。
鉴于我已经完成了大量应用程序,有什么好的 DRY 方法可以解决这种情况?
我已经搜索了这个网站和其他网站,但没有真正找到任何导致这种情况的原因。
我认为的一种方法是将User 模型中的角色更改为父级,然后有一个单独的Student 模型。然后,具有 parent 角色的用户可以 has_many :students 但这并不适合我。
我们将不胜感激任何一般性的想法/概念,以及任何对我有帮助的文章或宝石的指针。
【问题讨论】:
标签: ruby activerecord devise ruby-on-rails-3.2 activemodel