Reputation: 11336
Any idea on how to create and save a new User object with devise from the ruby console?
When I tried to save it, I'm getting always false. I guess I'm missing something but I'm unable to find any related info.
Upvotes: 155
Views: 97696
Reputation: 10396
If you want to avoid sending confirmation emails, the best choice is:
u = User.new({
email: '[email protected]',
password: '12feijaocomarroz',
password_confirmation: '12feijaocomarroz'
})
u.confirm
u.save
So if you're using a fake email or have no internet connection, that'll avoid errors.
Upvotes: 7
Reputation: 760
None of the above answers worked for me.
This is what I did:
User.create(email: "[email protected]", password: "asdasd", password_confirmation: "asdasd")
Keep in mind that the password must be bigger than 6 characters.
Upvotes: 3
Reputation: 5105
When on your model has :confirmable option this mean the object user should be confirm first. You can do two ways to save user.
a. first is skip confirmation:
newuser = User.new({email: '[email protected]', password: 'password', password_confirmation: 'password'})
newuser.skip_confirmation!
newuser.save
b. or use confirm! :
newuser = User.new({email: '[email protected]', password: 'password', password_confirmation: 'password'})
newuser.confirm!
newuser.save
Upvotes: 30
Reputation: 11315
You can add false to the save method to skip the validations if you want.
User.new({:email => "[email protected]", :roles => ["admin"], :password => "111111", :password_confirmation => "111111" }).save(false)
Otherwise I'd do this
User.create!({:email => "[email protected]", :roles => ["admin"], :password => "111111", :password_confirmation => "111111" })
If you have confirmable
module enabled for devise, make sure you are setting the confirmed_at
value to something like Time.now
while creating.
Upvotes: 206
Reputation: 11038
You should be able to do this using
u = User.new(:email => "[email protected]", :password => 'password', :password_confirmation => 'password')
u.save
if this returns false, you can call
u.errors
to see what's gone wrong.
Upvotes: 80