我已经使用Devise in Rails 5设置了一个新应用,并添加了一个自定义字段"用户名"到我的用户模型。我在用户名列的数据库迁移中添加了一个验证:username,presence:true和一个非null规范。
当我提交我的新用户表单时,它会在模型上传递用户名验证,但在列'用户名'中输出了一个Postgres数据库错误" null值违反了非空约束"。
此外,当我尝试使用User.create在控制台中创建新用户时!({username:' Test',email:' test@gmail.com' ;, password :' 12345',password_confirmation:' 12345'})它通过了模型验证,但在用户名列上抛出了与null值相同的Postgres数据库错误。
这表示用户名已传递给模型进行验证但未传递到数据库,因此Postgres正在接收空值并抛出非空约束错误。
在让Devise接受用户模型上的自定义字段时,是否缺少一个步骤?我已经遵循了从谷歌搜索中找到的所有说明,但我似乎遇到了与其他人不同的问题。
答案 0 :(得分:0)