ruby-on-rails - 密码长度验证永远不会通过 has_secure_password

标签 ruby-on-rails bcrypt-ruby

我正在尝试向 password 添加长度验证,但它总是出错并显示“密码太短”。

a = Artist.new(artist_name: 'Dylan', email: 'dylan@example.com', password: 'notshort')
p a.errors.full_messages  # ["Password is too short (minimum is 6 characters)"]
a = Artist.new(artist_name: 'Dylan', email: 'dylan@example.com', password: 'short')
p a.errors.full_messages  # ["Password is too short (minimum is 6 characters)"]

在我的模型中

has_secure_password
validates_length_of :password, minimum: 6

如果我将验证更改为

validates_length_of :password, minimum: 6, allow_blank: true

notshort 密码通过,但 short 也通过。

最佳答案

我也在使用 Bcrypt。这似乎对我有用:

has_secure_password
validates :password, length: { minimum: 6, maximum: 20 }, on: :create

关于ruby-on-rails - 密码长度验证永远不会通过 has_secure_password,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24767807/

相关文章:

ruby-on-rails - 表单标签标签中的 HTML 实体/特殊字符

rubygems - 无法为新的 Rails 安装安装 bcrypt-ruby

jquery - 具有 POST 功能的 Rails ajax : why template missing?

ruby-on-rails - Rails,模型中的查找器(使用收集)或 Controller 中的查找器(迭代和使用推送)。哪个更有效?

ruby-on-rails - Rails : Titlecase Only Capitalizes First Word in f. 标签

ruby - 为什么 Ruby 的 bcrypt 库在散列中以明文形式包含盐?

ruby-on-rails - RSPec 和 Rails 3 的 Mising 模板错误

ruby-on-rails - 如何在 Rails 4.2 中使用 has_secure_password 加密密码

sinatra - 为什么 BCrypt 在这种情况下无法进行身份验证?