我正在尝试验证两列在我的用户模型中是唯一的。我搜索了谷歌,据我了解,以下代码不起作用:
validates :login, :uniqueness=>true
validates :email, :uniqueness=>true
在我的情况下,这样做将验证电子邮件的唯一性,但不会验证登录的唯一性。我设置登录名在数据库上必须是唯一的。但是,如果它已经存在,那么它所要做的就是生成一个运行时错误。我不希望在生产中出现该错误,因为它会导致 500 内部服务器错误,用户无法理解。
关于如何验证这两个领域的独特性的任何想法?
使用的身份验证:
- 可以可以
- 设计
- 设计邀请
更新:
据我所知,问题是由设计引起的,特别是验证电子邮件和密码的可验证模块。
更新 2:
从 Devise 中删除可验证模块将不会导致检查唯一性。
更新 3:
看来设计没有引起问题。相反,一个名为 Devise Invitable 的宝石是。删除此 gem 会触发验证。这个 gem 似乎也试图强制验证电子邮件字段。由于这种宝石的性质,这是有道理的,但不应该阻塞。