我有一个模型,带有一些自定义的设计键,例如:
:authentication_keys => [:username],
:reset_password_keys => [:username],
:strip_whitespace_keys => [:username]
我还重写了以下方法,以使Devise不需要唯一的电子邮件地址:
def will_save_change_to_email?
false
end
问题在于,在满足所有其他期望之前,我没有收到ActiveRecord 'has already been taken'
错误,这时我收到了预期的ActiveRecord::RecordNotUnique
。
有人可以帮忙吗?
谢谢。
编辑:添加uniqueness: true
可确保立即返回错误消息,但我怀疑我不必添加此消息。
答案 0 :(得分:0)
因此,我意识到,在编辑Devise的身份验证密钥时,您要做必须在模型上指定它。
看到模型中已经存在该字段,我从Devise Guide跳过了下一行,最后错过了:uniq
。
rails generate migration add_username_to_users username:string:uniq