19
Ruby / Ruby on Railsビギナーズ倶楽部 ActiveAdminで作る管理画面 2015.03.28 超簡単!?

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

Embed Size (px)

Citation preview

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

Ruby / Ruby on Railsビギナーズ倶楽部

ActiveAdminで作る管理画面2015.03.28

超簡単!?

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

Self-Intoroduction

• WordPressもくもく倶楽部@Co-Edoも来てください。

• Swiftビギナーズ倶楽部@Co-Edoも開催しています( ▽ ` )ノ

• Rubyで開発し始めた、アプリケーションエンジニア(LAMP/Java/Oracle)

http://wp-moku.doorkeeper.jp/

一緒に勉強しましょう( ▽ ` )ノ 勉強会やってます!

http://swift-beginners.doorkeeper.jp/

徳島県出身です

(o∀`o)

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

ActiveAdminに 初めて触れて

びっくりした話です:)

写真素材ぱくたそ http://www.pakutaso.com

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

1)ActiveAdminって何?

Today's Agenda

2)他の管理画面系Gemってどんなのがある?

3)実際にやってみよう!

4)基本のDSLを学ぶ!

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

1)ActiveAdminって何?

公式サイト:http://activeadmin.info/index.html

• コマンドで管理画面を自動生成できるGem

• 比較的きれいなデザイン• 簡単すぎて • びっくりするよ!

• 管理者ログインの機能もデフォルト搭載!

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

2)他の管理画面系Gemってどんなのがある?

demo site:http://rails-admin-tb.herokuapp.com/

1)RailsAdmin

2)typusGithub:http://github.com/typus/typus

・開発者向けの管理画面に向いている。・カスタマイズが、大変らしい。

・管理画面生成gemの中で一番カスタマイズしやすい。・初期画面のデザインは、他より劣る。・モデルの自動検知はしないので、yaml追加が必要。

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

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

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

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:[email protected]:password

アカウント情報:

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

3)実際にやってみよう!

DEMO

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

4)基本のDSLを学ぶ!

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

DSLって何ですか?その前に・・・

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

4ー1)DSLとは

ドメイン固有言語 (domain-specific language:DSL)

・特定のタスク向けに設計されたコンピュータ言語。

どういうこと???

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

4ー1)DSLとは

・Ruby、Swift、PHPなどは、汎用プログラミング言語。

・ShellScript、SQL、Makefileなどは、特定の目的を  達成する為に特化したプログラミング言語。

様々な広い方面に用いる

DSLは・・・ 特定の目的を達成するための最小限の実装で良い。 利用者を限定できる為、その人達が分かる表現で良い。 故に、学習コストが高くなる。

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

4ー1)DSLとは

ActiveAdmin、Rspec、ActiveRecode(migration)等は、Rubyで作られた内部DSLなので、 Rubyの言語仕様で記述できる。

大きく分けて、外部DSLと内部DSLがある。

- XMLやyamlで書いたコードをRubyで 解析したりするのが外部DSLと呼ばれる。 - Rubyで実装したDSLが、内部DSLと呼ばれる。

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

4)基本のDSLを学ぶ!

index do column "ID", :id column "タイトル", :title column "色", :color actions end

一覧ページに表示する項目を 定義するパラメータ

column:

一覧ページを定義する パラメータ

index:

一覧ページ、編集ページに 各アクションボタンを 表示するパラメータ

actions:

さっきのDEMOのコードが 理解できる(o∀`o)

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

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:

これは、テーブル名です。

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

ま と め

・簡易的な管理画面をサクッと作るにはとても便利!

・カスタマイズしようと思うとDSLの理解が必要。

・ActiveAdminは、Rubyで書かれた内部DSL。

所感としては・・・ やっぱり超簡単だなんて 甘い話はないよね(⌒-⌒)

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

参 照 情 報

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の基礎

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

Let's study together!

Thank you :)