ruby-on-rails - rails - devise wiki
Crear un usuario de la consola Ruby (5)
¿Alguna idea sobre cómo crear y guardar un nuevo objeto de usuario con un diseño de la consola ruby?
Cuando traté de guardarlo, siempre estoy siendo falso. Creo que me falta algo, pero no puedo encontrar ninguna información relacionada.
Cuando en su modelo tiene: opción confirmable, esto significa que el usuario del objeto debe confirmar primero. Puedes hacer dos formas de salvar al usuario.
a. primero es la confirmación de omisión:
newuser = User.new({email: ''[email protected]'', password: ''password'', password_confirmation: ''password''})
newuser.skip_confirmation!
newuser.save
segundo. o usa confirmar! :
newuser = User.new({email: ''[email protected]'', password: ''password'', password_confirmation: ''password''})
newuser.confirm!
newuser.save
Deberías poder hacer esto usando
u = User.new(:email => "[email protected]", :password => ''password'', :password_confirmation => ''password'')
u.save
si esto devuelve falso, puede llamar
u.errors
para ver lo que salió mal
Ninguna de las respuestas anteriores funcionó para mí.
Esto es lo que hice:
User.create(email: "[email protected]", password: "asdasd", password_confirmation: "asdasd")
Tenga en cuenta que la contraseña debe tener más de 6 caracteres.
Puede agregar información falsa al método guardar para omitir las validaciones si lo desea.
User.new({:email => "[email protected]", :roles => ["admin"], :password => "111111", :password_confirmation => "111111" }).save(false)
De lo contrario, haría esto
User.create!({:email => "[email protected]", :roles => ["admin"], :password => "111111", :password_confirmation => "111111" })
Si tiene un módulo confirmable
habilitado para diseñar, asegúrese de establecer el valor de Time.now
en algo como Time.now
mientras crea.
Si desea evitar el envío de correos electrónicos de confirmación , la mejor opción es:
u = User.new({
email: ''[email protected]'',
password: ''12feijaocomarroz'',
password_confirmation: ''12feijaocomarroz''
})
u.confirm!
u.save
Entonces, si usa un correo electrónico falso o no tiene conexión a Internet, eso evitará errores.