超簡単!? activeadminで作る管理画面@ruby / ruby on rails ビギナーズ勉強会...
TRANSCRIPT
![Page 1: 超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回](https://reader031.vdocuments.mx/reader031/viewer/2022020110/55aa70cb1a28ab512e8b45d0/html5/thumbnails/1.jpg)
Ruby / Ruby on Railsビギナーズ倶楽部
ActiveAdminで作る管理画面2015.03.28
超簡単!?
![Page 2: 超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回](https://reader031.vdocuments.mx/reader031/viewer/2022020110/55aa70cb1a28ab512e8b45d0/html5/thumbnails/2.jpg)
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 4: 超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回](https://reader031.vdocuments.mx/reader031/viewer/2022020110/55aa70cb1a28ab512e8b45d0/html5/thumbnails/4.jpg)
1)ActiveAdminって何?
Today's Agenda
2)他の管理画面系Gemってどんなのがある?
3)実際にやってみよう!
4)基本のDSLを学ぶ!
![Page 5: 超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回](https://reader031.vdocuments.mx/reader031/viewer/2022020110/55aa70cb1a28ab512e8b45d0/html5/thumbnails/5.jpg)
1)ActiveAdminって何?
公式サイト:http://activeadmin.info/index.html
• コマンドで管理画面を自動生成できるGem
• 比較的きれいなデザイン• 簡単すぎて • びっくりするよ!
• 管理者ログインの機能もデフォルト搭載!
![Page 6: 超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回](https://reader031.vdocuments.mx/reader031/viewer/2022020110/55aa70cb1a28ab512e8b45d0/html5/thumbnails/6.jpg)
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回](https://reader031.vdocuments.mx/reader031/viewer/2022020110/55aa70cb1a28ab512e8b45d0/html5/thumbnails/7.jpg)
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回](https://reader031.vdocuments.mx/reader031/viewer/2022020110/55aa70cb1a28ab512e8b45d0/html5/thumbnails/8.jpg)
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回](https://reader031.vdocuments.mx/reader031/viewer/2022020110/55aa70cb1a28ab512e8b45d0/html5/thumbnails/9.jpg)
3)実際にやってみよう!
DEMO
![Page 10: 超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回](https://reader031.vdocuments.mx/reader031/viewer/2022020110/55aa70cb1a28ab512e8b45d0/html5/thumbnails/10.jpg)
4)基本のDSLを学ぶ!
![Page 11: 超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回](https://reader031.vdocuments.mx/reader031/viewer/2022020110/55aa70cb1a28ab512e8b45d0/html5/thumbnails/11.jpg)
DSLって何ですか?その前に・・・
![Page 12: 超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回](https://reader031.vdocuments.mx/reader031/viewer/2022020110/55aa70cb1a28ab512e8b45d0/html5/thumbnails/12.jpg)
4ー1)DSLとは
ドメイン固有言語 (domain-specific language:DSL)
・特定のタスク向けに設計されたコンピュータ言語。
どういうこと???
![Page 13: 超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回](https://reader031.vdocuments.mx/reader031/viewer/2022020110/55aa70cb1a28ab512e8b45d0/html5/thumbnails/13.jpg)
4ー1)DSLとは
・Ruby、Swift、PHPなどは、汎用プログラミング言語。
・ShellScript、SQL、Makefileなどは、特定の目的を 達成する為に特化したプログラミング言語。
様々な広い方面に用いる
DSLは・・・ 特定の目的を達成するための最小限の実装で良い。 利用者を限定できる為、その人達が分かる表現で良い。 故に、学習コストが高くなる。
![Page 14: 超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回](https://reader031.vdocuments.mx/reader031/viewer/2022020110/55aa70cb1a28ab512e8b45d0/html5/thumbnails/14.jpg)
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回](https://reader031.vdocuments.mx/reader031/viewer/2022020110/55aa70cb1a28ab512e8b45d0/html5/thumbnails/15.jpg)
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回](https://reader031.vdocuments.mx/reader031/viewer/2022020110/55aa70cb1a28ab512e8b45d0/html5/thumbnails/16.jpg)
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回](https://reader031.vdocuments.mx/reader031/viewer/2022020110/55aa70cb1a28ab512e8b45d0/html5/thumbnails/17.jpg)
ま と め
・簡易的な管理画面をサクッと作るにはとても便利!
・カスタマイズしようと思うとDSLの理解が必要。
・ActiveAdminは、Rubyで書かれた内部DSL。
所感としては・・・ やっぱり超簡単だなんて 甘い話はないよね(⌒-⌒)
![Page 18: 超簡単!? ActiveAdminで作る管理画面@Ruby / Ruby on Rails ビギナーズ勉強会 第3回](https://reader031.vdocuments.mx/reader031/viewer/2022020110/55aa70cb1a28ab512e8b45d0/html5/thumbnails/18.jpg)
参 照 情 報
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回](https://reader031.vdocuments.mx/reader031/viewer/2022020110/55aa70cb1a28ab512e8b45d0/html5/thumbnails/19.jpg)
Let's study together!
Thank you :)