ActiveRecord / Devise未提供“已被采取错误”

时间:2019-01-11 10:44:02

标签: ruby-on-rails devise

我有一个模型,带有一些自定义的设计键,例如:

: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可确保立即返回错误消息,但我怀疑我不必添加此消息。

1 个答案:

答案 0 :(得分:0)

因此,我意识到,在编辑Devise的身份验证密钥时,您要做必须在模型上指定它。

看到模型中已经存在该字段,我从Devise Guide跳过了下一行,最后错过了:uniq

rails generate migration add_username_to_users username:string:uniq