如何保存设计current_user

时间:2013-10-18 08:26:45

标签: ruby-on-rails devise

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

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

1 个答案:

答案 0 :(得分:4)

当您保存用户时,设计通常会检查密码是否正确并与password_confirmation匹配。密码显然不存储在会话对象中。

您可以跳过验证:

current_user.save(validate: false)

哪个不会检查密码并保存确定。这仅在您不想验证爬网计数器字段

时才有效