Crear un usuario de devise desde Ruby console
¿Alguna idea sobre cómo crear y guardar un nuevo objeto de usuario con devise desde la consola ruby?
Cuando traté de guardarlo, siempre me estoy poniendo falso. Supongo que me estoy perdiendo algo, pero no puedo encontrar ninguna información relacionada.
5 answers
Puede agregar false al método save 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 el módulo confirmable
habilitado para devise, asegúrese de que está configurando el valor confirmed_at
a algo como Time.now
mientras crea.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-05 06:27:02
Usted debe ser capaz de hacer esto usando
u = User.new(:email => "[email protected]", :password => 'password', :password_confirmation => 'password')
u.save
Si esto devuelve false, puede llamar a
u.errors
Para ver qué ha salido mal.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-30 18:09:12
Cuando en su modelo tiene la opción :confirmable, esto significa que el usuario del objeto debe confirmar primero. Puede hacer dos formas de guardar el usuario.
A. Primero es la confirmación de salto:
newuser = User.new({email: '[email protected]', password: 'password', password_confirmation: 'password'})
newuser.skip_confirmation!
newuser.save
B. o usar confirmar! :
newuser = User.new({email: '[email protected]', password: 'password', password_confirmation: 'password'})
newuser.confirm!
newuser.save
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-24 02:32:36
Si quieres evitar enviar 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
Así que si estás usando un correo electrónico falso o no tienes conexión a Internet, eso evitará errores.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-22 16:14:30
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.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-28 15:28:39