33

I made authentication in my Rails 3 app fallowed by Tony's tutorial

I don't want public registrations on my app, just to create new users with Admin account, but I can't create Admin account manually, because in table Users there is encrypted password and salt that must to be generated, and I don't know how :|

dormitkon
  • 2,526
  • 4
  • 39
  • 60

3 Answers3

44

You can do it from the rails console. From the command line goto the directory of your rails application and type rails console. Then enter the following code to create a user:

user=User.create!(:email=>'test@test.com',:username=>'test',:password=>'password')

This will create a user object (assuming your devise resource is called User). Now you can use the user object that you just created to set admin privileges.

Braden Becker
  • 2,489
  • 20
  • 15
  • I get Template error in browser when I want to access users/new, undefined method 'model', and from console when I try to create new user I get ActionView::Template::Error: ActionView::Template::Error and a lot of file references (it's not nice to copy in comment :) ) – dormitkon Mar 01 '11 at 09:04
  • Where is your ability model? - https://github.com/ryanb/cancan/wiki/defining-abilities – Braden Becker Mar 01 '11 at 17:58
  • The default devise user model does not have a :username field. – jaketrent Oct 05 '13 at 22:42
21

I am current something like this (your details may be different) in my seeds.rb file to create my admin user for Devise.

User.new({ :email => 'admin@example.com', :password => 'password', :password_confirmation => 'password'}).save

You can execute it using rake db:seed in the terminal window.

Mark S.
  • 1,516
  • 1
  • 16
  • 26
18

In addition, if you are using confirmable and want to skip the requirement for a confirmation email when creating new accounts you can do something like this:

newuser = User.new({ :email => 'admin@example.com', 
          :password => 'password', 
          :password_confirmation => 'password'})
newuser.skip_confirmation!
newuser.save

This is useful if the accounts you are creating are for trusted users or if you are creating test accounts.

SnapShot
  • 5,464
  • 5
  • 42
  • 40