设计为重复的用户名创建错误消息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计为重复的用户名创建错误消息相关的知识,希望对你有一定的参考价值。
我正在使用rails 5.2 with devise。我在我的数据库中为设计用户添加了一个唯一的用户名字段。尝试使用重复的用户名注册时,我的数据库收到ActiveRecord :: RecordNotUnique错误。我想有一个错误消息,就像设计默认的电子邮件。谢谢!
编辑完整的错误消息:
PG :: UniqueViolation:ERROR:重复键值违反唯一约束“index_users_on_username”DETAIL:Key(username)=(supertest)已存在。 :INSERT INTO“users”(“email”,“encrypted_password”,“created_at”,“updated_at”,“username”)VALUES($ 1,$ 2,$ 3,$ 4,$ 5)返回“id”
答案
你需要add a validation到你的模型:
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:confirmable, :recoverable, :validatable # ...
validates_uniqueness_of :username
end
验证可以防止低级别的ActiveRecord::RecordNotUnique
异常,因为如果验证失败,Rails将不会尝试写入db。
以上是关于设计为重复的用户名创建错误消息的主要内容,如果未能解决你的问题,请参考以下文章
Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段