(この記事はRuby Advent Calendar jp: 2010 : ATNDの12日目です。前日はbash0C7さんでした。)
今日はRubyでイケてる管理画面を生成する「Typus」を紹介します。
Typusは
- デザインがシンプルで素敵
- 認証機能つき(認証なし・HTTP認証・DB認証から選べます)
- ユーザーの権限制御が可能
- Rails3で動く
- テンプレートのカスタマイズが楽
という点でイケてます。
Rails2からRails3になって、様々なプラグインの定番が切り替わった印象を受けていますが、TypusもActiveScaffoldに変わって定番になるだろうなぁと思うので、是非使ってみてください。
https://github.com/fesplugas/typus
用意
まずは、Rails3で簡単なプロジェクトを作ります。ユーザーモデルとタスクモデルを生成します。
% rails new todo
% cd todo
% rails generate model user username:string
% rails generate model task title:string completed:boolean user_id:integer
% rake db:migrate
% cd todo
% rails generate model user username:string
% rails generate model task title:string completed:boolean user_id:integer
% rake db:migrate
準備OKです。
Gemfile編集
Gemfileにtypusを追加します。
gem 'typus', :git => 'https://github.com/fesplugas/typus.git'
Bundleを更新します。
% bundle
Fetching https://github.com/fesplugas/typus.gitremote: Counting objects: 36226, done.
remote: Compressing objects: 100% (13705/13705), done.
remote: Total 36226 (delta 21273), reused 35447 (delta 20675)
Receiving objects: 100% (36226/36226), 3.81 MiB | 428 KiB/s, done.
Resolving deltas: 100% (21273/21273), done.
Fetching source index for http://rubygems.org/
Using rake (0.8.7)
… 略
Using typus (3.0.3) from https://github.com/fesplugas/typus.git (at master)
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
Fetching https://github.com/fesplugas/typus.gitremote: Counting objects: 36226, done.
remote: Compressing objects: 100% (13705/13705), done.
remote: Total 36226 (delta 21273), reused 35447 (delta 20675)
Receiving objects: 100% (36226/36226), 3.81 MiB | 428 KiB/s, done.
Resolving deltas: 100% (21273/21273), done.
Fetching source index for http://rubygems.org/
Using rake (0.8.7)
… 略
Using typus (3.0.3) from https://github.com/fesplugas/typus.git (at master)
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
ジェネレーターを実行して、管理画面を生成する
% rails g typus
create config/typus/README
create config/initializers/typus.rb
create config/initializers/typus_resources.rb
以下略
create config/typus/README
create config/initializers/typus.rb
create config/initializers/typus_resources.rb
以下略
できあがり! イヤッホゥ、超簡単!
さらにカスタムしたいなら
ドキュメントを参考のこと http://core.typuscms.com/