Ruby / Ruby on Railsビギナーズ倶楽部
ActiveAdminで作る管理画面
2015.03.28
超簡単!?
Self-Intoroduction
• WordPressもくもく倶楽部@Co-Edoも来てください。
• Swiftビギナーズ倶楽部@Co-Edoも開催しています( ́ ▽ ` )ノ
• Rubyで開発し始めた、アプリケーションエンジニア(LAMP/Java/Oracle)
http://wp-moku.doorkeeper.jp/
一緒に勉強しましょう( ́ ▽ ` )ノ
勉強会やってます!
http://swift-beginners.doorkeeper.jp/
徳島県出身です
(ó `o)
ActiveAdminに
初めて触れて
びっくりした話です:)
写真素材ぱくたそ
http://www.pakutaso.com
1)ActiveAdminって何?
Today's Agenda
2)他の管理画面系Gemってどんなのがある?
3)実際にやってみよう!
4)基本のDSLを学ぶ!
1)ActiveAdminって何?
公式サイト:http://activeadmin.info/index.html
• コマンドで管理画面を自動生成できるGem
• 比較的きれいなデザイン
• 簡単すぎて
• びっくりするよ!
• 管理者ログインの機能もデフォルト搭載!
2)他の管理画面系Gemってどんなのがある?
demo site:http://rails-admin-tb.herokuapp.com/
1)RailsAdmin
2)typus
Github:http://github.com/typus/typus
・開発者向けの管理画面に向いている。
・カスタマイズが、大変らしい。
・管理画面生成gemの中で一番カスタマイズしやすい。
・初期画面のデザインは、他より劣る。
・モデルの自動検知はしないので、yaml追加が必要。
3)実際にやってみよう!
gem 'activeadmin', github: 'gregbell/active_admin'
gem 'sass-rails'
gem 'devise' # ユーザー認証で必要
3­1)Gemfileに追記
3­2)インストール
bundle install
bundle exec rails g active_admin:install
3­3)モデルを生成
bundle exec rails g model book title:string color:string
bundle exec rake db:migrate
3)実際にやってみよう!
bundle exec rails g active_admin:resource book
3­4)ActiveAdminでモデルを認識
3­5)app/admin/book.rbを実装
3­6)サーバー起動
bundle exec rails s
https://github.com/mustacheyork/admin_app
3­7)ブラウザにアクセス!!
http://localhost:3000/admin
ソースはこちら
Email:admin@example.com
Password:password
アカウント情報:
3)実際にやってみよう!
DEMO
4)基本のDSLを学ぶ!
DSLって何ですか?
その前に・・・
4ー1)DSLとは
ドメイン固有言語
(domain-specific language:DSL)
・特定のタスク向けに設計されたコンピュータ言語。
どういうこと???
4ー1)DSLとは
・Ruby、Swift、PHPなどは、汎用プログラミング言語。
・ShellScript、SQL、Makefileなどは、特定の目的を
 達成する為に特化したプログラミング言語。
様々な広い方面に用いる
DSLは・・・
特定の目的を達成するための最小限の実装で良い。
利用者を限定できる為、その人達が分かる表現で良い。
故に、学習コストが高くなる。
4ー1)DSLとは
ActiveAdmin、Rspec、ActiveRecode(migration)等は、
Rubyで作られた内部DSLなので、
Rubyの言語仕様で記述できる。
大きく分けて、外部DSLと内部DSLがある。
- XMLやyamlで書いたコードをRubyで
解析したりするのが外部DSLと呼ばれる。
- Rubyで実装したDSLが、内部DSLと呼ばれる。
4)基本のDSLを学ぶ!
index do
column "ID", :id
column "タイトル", :title
column "色", :color
actions
end
一覧ページに表示する項目を
定義するパラメータ
column:
一覧ページを定義する
パラメータ
index:
一覧ページ、編集ページに
各アクションボタンを
表示するパラメータ
actions:
さっきのDEMOのコードが
理解できる(ó `o)
active_admin_comments:
4)基本のDSLを学ぶ!
show do ¦b¦
attributes_table do
row :id
row :title
row :color
end
active_admin_comments
end
詳細ページで表示する項目を
定義するパラメータ
attributes_table:
詳細ページを定義する
パラメータ
show:
これは、テーブル名です。
ま と め
・簡易的な管理画面をサクッと作るにはとても便利!
・カスタマイズしようと思うとDSLの理解が必要。
・ActiveAdminは、Rubyで書かれた内部DSL。
所感としては・・・
やっぱり超簡単だなんて
甘い話はないよね(͡-͡)
参 照 情 報
http://qiita.com/baban@github/items/f751fb05c4d2367878aa
・rails管理画面系gem比較してみた
http://www.slideshare.net/yizawa/rubydsl-25541986
・RubyでDSL
http://www.nicovideo.jp/watch/sm11902338
・Rubyで作るDSLの基礎
Let's study together!
Thank you :)

超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回