48

I am using devise for my users. I recently installed the rails Active Admin gem, everything is working beautifully.

However I can't figure out how to add a new admin users. I can see that active admin created an admin_user table in the db with a user admin@example.com, which I use to log in to the interface.

I tried adding admin_user as a resource so that I can just click the Add Admin User button within the active admin interface to add a new user, however that does not seem to work.

Fabio
  • 18,856
  • 9
  • 82
  • 114
alik
  • 3,820
  • 9
  • 41
  • 55
  • 2
    Check out step 2 of this tutorial, it may help: http://net.tutsplus.com/tutorials/ruby/create-beautiful-administration-interfaces-with-active-admin/ – Brian Sep 28 '11 at 23:44
  • 33
    additional fyi: this is the code Active Admin uses to create the default admin user: `AdminUser.create!(:email => 'admin@example.com', :password => 'password', :password_confirmation => 'password')` – Brian Sep 28 '11 at 23:49

4 Answers4

101

What brian said works perfectly http://net.tutsplus.com/tutorials/ruby/create-beautiful-administration-interfaces-with-active-admin/

AdminUser.create!(:email => 'admin@example.com', :password => 'password', :password_confirmation => 'password')
user456584
  • 86,427
  • 15
  • 75
  • 107
Scott
  • 2,248
  • 3
  • 22
  • 24
  • 1
    I cannot get this to send an email...any ideas? –  Nov 28 '11 at 22:43
  • did you see brian's 2nd comment? – Scott Dec 05 '11 at 16:40
  • http://stackoverflow.com/questions/8126747/cant-create-new-user-with-activeadmin/8340729#8340729 – Scott Dec 05 '11 at 16:40
  • I found emails went out after I re-started my localhost server after changing the active admin files per the tutorial (should have know to do it, but forgot) – jpw Jan 18 '12 at 19:48
  • 5
    For those new to Rails, first run the rails console, `$ rails c`, then execute the above statement in the console, `# AdminUser.create!(...)` – Patrick Mar 06 '15 at 22:16
7

What Brian said works, but if you want to set the password in the interface rather than have it send a reset email try this:

Leave the admin_user model at its original generated default, then in app/admin/admin_users.rb:

ActiveAdmin.register AdminUser do
  index do
    column :email
    column :current_sign_in_at
    column :last_sign_in_at
    column :sign_in_count
    default_actions
  end

  form do |f|
    f.inputs "Admin Details" do
      f.input :email
      f.input :password
      f.input :password_confirmation
    end
    f.buttons
  end
end
Nate914375
  • 182
  • 3
  • 4
2
  1. login: admin@example.com password: password => login
  2. go to http://localhost:3000/admin/admin_users

If you want create users (devise users, table "users") in admin panel:

  1. $ rails generate active_admin:resource user
  2. app/admin/user.rb:

ActiveAdmin.register User do
  permit_params :email, :name, :password, :password_confirmation

  index do
    column :name
    column :email
    actions
  end

  form do |f|
    f.inputs 'User' do
      f.input :name
      f.input :email
      f.input :password
      f.input :password_confirmation
    end
    f.actions
  end
end
1

this is the new syntax AdminUser.create!(email: "youremail@domain.com", password: "password123", password_confirmation: "password123")

gsumk
  • 809
  • 10
  • 15