ActiveAdmin

Winnipeg.rb Talk

Kyle Geske

Red River College

About Me

Moi

Kyle Geske

  • Hardware/Firmware Engineer Turned Web Dev
  • Instructor at Red River College
    (Ruby/Rails, PHP, HTML/CSS, Philosophy of Time Travel)
  • Artist w/ Printmaking Studio @ Artspace

V-World Avatars

  • Twitter, Github, Flickr, Pinboard, Gmail, Etc: stungeye
  • Web: stungeye.com
  • AKA: Walter S. Glutton

Getting Started

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

Adding ActiveAdmin

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

Visit the Dashboard

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

Add Dashboard Widgets

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

ManitobaElection.ca Demo

Me

The back-end of ManitobaElection.ca is powered by ActiveAdmin.

Questions & More Information

Web_find_out_more

Find out more about ActiveAdmin:

http://activeadmin.info

https://github.com/gregbell/active_admin


Any Questions?