gpt4 book ai didi

ruby - 验证两列的唯一性

转载 作者:太空宇宙 更新时间:2023-11-03 17:07:59 25 4
gpt4 key购买 nike

我正在尝试验证两列在我的用户模型中是否唯一。我已经在 Google 上进行了搜索,据我所知,以下代码将不起作用:

validates :login, :uniqueness=>true
validates :email, :uniqueness=>true

在我的例子中,这样做将验证电子邮件的唯一性,但不会验证登录的唯一性。我设置登录名在数据库中必须是唯一的。但是,如果它已经存在,那么所有要做的就是生成一个运行时错误。我不希望在生产中出现该错误,因为它会导致 500 内部服务器错误,用户无法理解。

关于如何验证这两个字段的唯一性有什么想法吗?

使用的身份验证:

  • 灿灿
  • 设计
  • 设计邀请

更新:

据我所知,问题是由 Devise 引起的,特别是验证电子邮件和密码的可验证模块。

更新 2:

从 Devise 中删除可验证模块将不会检查唯一性。

更新 3:

问题似乎不是设计引起的。相反,名为 Devise Invitable 的 gem 是。删除此 gem 会导致触发验证。该 gem 似乎还试图强制验证电子邮件字段。由于此 gem 的性质,这是有道理的,但不应阻塞。

最佳答案

应该能够使用 scope 来完成,通过设计添加到默认验证。

对于 Rails 3 版本:

validates :email, :uniqueness => {:scope => :login}

引用:

关于ruby - 验证两列的唯一性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12978516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com