如何正确处理Rails中的ActiveRecord :: RecordNotUnique

lar*_*hao 6 ruby ruby-on-rails exception

我试图在我的Rails项目中使用唯一索引强制唯一性.我发现了令人困惑的事情.

就像在我的网站上注册用户一样,您需要提供电子邮件地址和昵称,两者都必须是唯一的.我为电子邮件和昵称添加了唯一索引.当重复来临时,我救了异常ActiveRecord::RecordNotUnique,现在这里是问题,我怎么知道哪个字段导致异常?

非常感谢您的帮助.

spi*_*ann 3

恕我直言,您还应该向您的模型添加唯一性验证器。这允许您使用 Rails 的验证和错误消息。

# add to model
validates :email,    uniqueness: true
validates :nickname, uniqueness: true
Run Code Online (Sandbox Code Playgroud)

请注意,为了确保数据库级别的唯一性,仍然需要唯一索引。