Kyle Geske
V-World Avatars
Let’s create a simple Rails app with models for customers and provinces.
rails new activeadmin
cd activeadmin
rails g model customer name:string age:integer province_id:integer
rails g model province name:string population:integer
rake db:migrate
Associated the models.
customer.rb:
1 belongs_to :province
province.rb:
1 has_many :customers
Edit your Gemfile.
1 gem 'activeadmin'
2 gem 'sass-rails'
3 gem "meta_search", '>= 1.1.0.pre'
Install ActiveAdmin.
bundle install
rails generate active_admin:install
rake db:migrate
Enhance your models.
rails generate active_admin:resource Customer
rails generate active_admin:resource Province
Run your Rails server and visit: http://localhost:3000/admin
Authentication is handled by Devise, but you can override that.
1 # config/initializers/active_admin.rb
2 config.authentication_method = :authenticate_admin_user!
3 config.current_user_method = :current_admin_user
Edit app/admin/dashboards.rb
1 ActiveAdmin::Dashboards.build do
2
3 section "Provinces" do
4 ul do
5 li "Number of Provinces: #{Province.all.count}"
6 li "Average Population: #{number_to_human Province.average(:population)}"
7 end
8 end
9
10 section "Customers" do
11 ul do
12 li "Number of Customers: #{Customer.all.count}"
13 li "Average Age: #{Customer.average(:age)}"
14 end
15 end
16
17 end