-1

尝试更新 current_user
但在递减计数器属性并出现验证错误后无法保存,最小密码长度为 6 个字符 -</p>

current_user.crawl_counter -= 1
current_user.save!

更新:

class User < ActiveRecord::Base
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  attr_accessible :email, :password, :password_confirmation, :remember_me, :crawl_counter
  PASSWORD_REGEX = /^[a-zA-Z\d]*$/
  validates :password, format: { with: PASSWORD_REGEX, :message => I18n.t('errors.messages.password_invalid') }
end
4

1 回答 1

5

保存用户时,devise 通常会检查密码是否正确并与 password_confirmation 匹配。密码显然没有存储在会话对象中。

您可以跳过验证:

current_user.save(validate: false)

哪个不会检查密码并保存好。这仅在您不想验证抓取计数器字段时才有效

于 2013-10-18T09:18:16.217 回答