¿Cómo solicito que una contraseña tenga una longitud mínima cuando se utiliza has_secure_password en Rails 3.1? Traté de hacer:has_secure_password: cómo solicitar la longitud mínima
class User < ActiveRecord::Base
...
validates :password, presence: { on: create }, length { minimum: 8 }
...
end
pero luego falla la validación con la contraseña "demasiado corto" en la actualización cuando la contraseña no se proporciona en forma params. Para otros atributos, la longitud solo se valida si se proporciona el valor para el campo. ¿Es esto un error en la implementación has_secure_password o estoy haciendo algo mal?
Gracias por la pista. Creo que quieres decir: validates: password, presence: {on: create}, length {minimum: 8, if: password_digest_changed? }. Si hiciera lo siguiente: si al final como sugiere, valida: la presencia podría no estar activa en crear. No hay un método password_changed? ya que estoy usando has_secure_password - ¿el método relevante es password_digest_changed ?. Este es un error en Rails 3.1.rc4, ¿verdad? – Peder
Hola, bien hecho :) No creo que sea un error, 'password' en tu caso parece ser un atributo virtual y métodos como' changed? 'Solo existen para filas de db – apneadiving