Ayd*_*kov -1 ruby-on-rails devise
尝试更新 current_user
\n但在递减计数器属性并收到验证错误后无法保存,最小密码长度为 6 个字符 \xe2\x80\x93
current_user.crawl_counter -= 1\ncurrent_user.save!\nRun Code Online (Sandbox Code Playgroud)\n\n更新:
\n\nclass User < ActiveRecord::Base\n devise :database_authenticatable, :registerable,\n :recoverable, :rememberable, :trackable, :validatable\n\n attr_accessible :email, :password, :password_confirmation, :remember_me, :crawl_counter\n PASSWORD_REGEX = /^[a-zA-Z\\d]*$/\n validates :password, format: { with: PASSWORD_REGEX, :message => I18n.t('errors.messages.password_invalid') }\nend\nRun Code Online (Sandbox Code Playgroud)\n
当您保存用户时,devise通常会检查密码是否正确并与password_confirmation匹配。密码显然没有存储在会话对象中。
您可以跳过验证:
current_user.save(validate: false)
Run Code Online (Sandbox Code Playgroud)
这不会检查密码并保存确定。仅当您不想验证抓取计数器字段时,这才有效