我正在使用 Rails 构建一个 Web 应用程序,它为每个企业提供自己的帐户和子域,类似于 basecamp(和其他 37 个信号应用程序)lighthouseapp.com 等。
现在我知道有很多关于如何在 Rails 中创建子域的不错的教程,甚至还有 subdomain-fu 插件。
问题是我想使用用户的电子邮件地址作为他们的登录名,这意味着它必须是唯一的,但是我只希望它对每个帐户而不是所有帐户都是唯一的。
我正在使用设计进行身份验证,并且我创建了一个代表帐户的“帐户”模型,以及一个代表该帐户用户的用户模型。Devise 在用户模型上运行,看起来它要求每个用户都有一个唯一的电子邮件地址。
我是否已经足够清楚地说明了这个问题?我很乐意提供澄清。
谁能指出我正确的方向?
为蒂姆澄清一些细节
- 问:个人企业可以拥有多少个账户?
答:每个企业都有一个帐户。比如“Springfield Maths”
问:子域和账户之间是否存在一一对应关系?
答:可以,例如 springfield-maths-grinds.myapp.com
问:“用户”是指自然人,还是账户中的角色?
- 答:我应该更好地解释这一点。我实际上有两个独立的模型,例如导师和学生。每个帐户将有多个导师和学生。
企业、帐户、子域 企业和帐户实际上是一回事。可以说是“商业帐户”。我正在使用子域来访问每个“企业帐户”
登录名、用户、电子邮件地址 我应该澄清一下,我有两种类型的用户,它们由不同的模型表示,它们是导师和学生。这些将需要登录到应用程序,我想使用电子邮件地址作为他们的登录名,而不是用户名。
希望这能解决问题,而不是让事情变得更糟。
我的实际问题如下,如果有人要为“Springfield 物理研究”设置一个商业帐户,并且“Springfield 数学研究”的一名学生尝试注册,那么他们将无法注册,因为电子邮件地址已经在使用并且需要是唯一的。我想知道如何在企业帐户中确定学生和导师的范围。