【发布时间】:2015-05-26 18:21:28
【问题描述】:
我正在尝试绕过应用程序中用户模型的密码验证。我有以下基于一些类似的 SO 问题:
模型.rb
attr_accessor :skip_password_validation
has_secure_password
validates :password, length: { minimum: 6 }, allow_nil: true, unless: :skip_password_validation
controller.rb
@mem.skip_password_validation = true
if @mem.valid?
#do some stuff
else
render 'last_template'
end
这会始终呈现最后一个模板并返回密码验证错误。感谢您的帮助。
【问题讨论】:
-
什么时候不验证?
-
当
skip_password_validation等于某个值时。可以是true或false,细节无关紧要。 -
试试
if: -> { |mem| mem.skip_password_validation } -
在控制器
@mem.skip_password_validation = "true"和模型validates :password, length: { minimum: 6 }, allow_nil: true, if: "skip_password_validation.blank?"中试试这个 -
我确实有其他验证,但出现的唯一错误是
:password字段上的Password can't be blank。
标签: ruby-on-rails ruby validation ruby-on-rails-4