rails:如何验证两个表中字段的唯一性?

时间:2013-06-02 14:17:30

标签: ruby-on-rails

我的应用程序数据库中有两个表用于两种用户,治疗师和患者,都使用用户名和密码登录/退出,我想确保不能有治疗师和患者同样用户名,我该怎么做?

同样,是否可以为治疗师和患者使用相同的会话控制器?

1 个答案:

答案 0 :(得分:1)

重构您的设计

用户不应该有两个不同的表。您可能应该有一个User表,其中包含一个指定User角色的字段。这使得使用单选按钮或Web应用程序中的下拉列表选择用户角色变得特别容易,并且还允许您在用户记录的各个方面强制执行唯一性。

然而,为什么名为“约翰史密斯”的病人不可能有一位名叫“约翰史密斯?”的治疗师?在强制执行特定的唯一性约束之前,我会考虑这个问题。

最后,会话通常在控制器之间共享,并且控制器当然可以一次从多个模型中读取。在您的情况下,重构为通用用户模型将减少在这方面做复杂事情的需要。