He estado jugando con has_secure_password y me encontré con un problema. Mi prueba para la acción crear en mi UsersController no fue
trabajando
pasando. Así que comencé a jugar en la consola y me di cuenta de que la contraseña no se estaba convirtiendo a un has y guardada en el campo password_digest.Rails 3.1.1 has_secure_password digest no puede estar en blanco
Cuando intento crear un usuario desde la consola sucede lo siguiente.
irb(main):031:0> u = User.new(:email => "[email protected]", :password => "test", :password_confirmation => "test")
=> #<User id: nil, email: "[email protected]", password_digest: nil, created_at: nil, updated_at: nil>
irb(main):032:0> u.save
=> false
irb(main):033:0> u.errors
=> #<ActiveModel::Errors:0x00000100cde500 @base=#<User id: nil, email: "[email protected]", password_digest: nil, created_at: nil, updated_at: nil>, @messages={:password_digest=>["can't be blank"]}>
No estoy seguro de qué estoy haciendo mal. Parece que el atributo password_digest nunca se asigna. Si creo un objeto de usuario sin atributos y le asigno cada atributo individualmente, obtengo el mismo error.
Aquí es mi modelo
class User < ActiveRecord::Base
has_secure_password
attr_accessible :email, :password, :password_confirmation
end
Gracias por la ayuda de antemano.
Alex Shenoy