我正在通过Ruby on Rails Tutorial和exercises for 10.1.2 - Unsuccessful Edits我被要求测试应用程序是否正确捕获了无效的表单提交。
也许我做得太彻底了 - 我发现它有效"有效"使用非nil
password_confirmation提交nil
密码。
我认为has_secure_password
会抓住这个?
1)为什么不呢?
2)如果password
等于password_confirmation
,我该如何确保?
我目前有:
validates :password, presence: true, length: { minimum: 6 }, allow_nil: true
我已尝试添加, confirmation: true
,但这无济于事。
答案 0 :(得分:0)
如果您想要设计验证,可以将可验证模块添加到模型中。
devise
:validatable
如果您想让rails验证它,您可以使用
validates_confirmation_of :password
如果您仍然遇到问题,请检查您如何初始化强参数和/或发布params代码。
答案 1 :(得分:0)
添加validates
仅适用于布尔值:
validates :password, presence: true, if: :password_confirmation_given?
def password_confirmation_given?
password_confirmation.nil? ? false : !password_confirmation.empty?
end