Ocultar un atributo en un modelo ActiveRecord
Soy algo nuevo en Rails y estoy trabajando en el diseño de un modelo de usuario utilizando ActiveRecord. En este modelo, tengo un atributo de contraseña que está destinado a mantener un hash de la contraseña del usuario.
Quiero eliminar tanto la lectura como la configuración de este atributo directamente. Sin embargo, parece que no puedo encontrar una manera de eliminar los accesores cuando uso la consola de Rails. La única solución viable hasta ahora ha sido anular explícitamente los métodos de acceso para la contraseña y realmente no quiero anularlos, quiero que los accesores se hayan ido, o al menos el lector.
Aquí está mi modelo:
class User < ActiveRecord::Base
// various associations
def password_correct?(password)
read_attribute(:password) == hash(password)
end
def password=(password)
write_attribute(:password, hash(password))
end
def password
"get your dirty fingers off this attribute"
end
private
def hash(input)
Digest::SHA2.new(512).update(input).hexdigest
end
end
¿Alguna idea de cómo lograr esto o cualquier deficiencia de este enfoque?