Rails管理画面gem の新星！administrate を使おう - その0 紹介

Railsで管理画面をサクッと作るgem達！沢山ありますよね！
みなさんどんなのを使っているんでしょう・・

### <i class="fa fa-cubes" style="font-size:1em;"></i> Qiitaで管理系gem情報を検索

- [rails管理画面系gem比較してみた - Qiita](http://qiita.com/baban@github/items/f751fb05c4d2367878aa)

↑わかりすい！

やっぱ・・みんな使ってるっぽいactive_adminとか・・安心でいいかな〜
でもDSL使いにくそうだな〜〜・・・と悩んで、いたところ「[Administrate](https://robots.thoughtbot.com/announcing-administrate)なんてどう〜？」と天の声が。。

どれどれ・・

- [Administrate デモページ](https://administrate-prototype.herokuapp.com/admin)

- [Administrate 公式ドキュメント](http://administrate-prototype.herokuapp.com/)

- [Github : thoughtbot/administrate](https://github.com/thoughtbot/administrate)

お〜なんかいい感じ！！

使ってみた〜い！！
・・・と、Rails初心者がpre1.0のgemに突撃！

## <i class="fa fa-exclamation-triangle"></i> 先に進む前に注意点！！！

> Note: Administrate is still pre-1.0, and there may be occasional breaking changes to the API.

↑公式ドキュメントにもハッキリ書いてある通り、pre1.0なので、大きなAPI変更があるかもしれません。
・・ということで、ハマる覚悟がある人は突き進んで下さい。

### <i class="fa fa-eye"></i> この文書の注意点！！！

- すっげ〜苦労した軌跡をメモります
- pre1.0のハマりどころの認識が浅い初心者が突き進んだ結果のログです
- 本記事記載時のバージョンは Administrate v0.1.3 です
- 「お、いいかも！使ってみようかな？」と思った方に少しでもお役に立てる記事を目指しています
- ・・・が間違っている点や、gemのAPI変更が発生する可能性有なので、ご注意を・・

## <i class="fa fa-thumbs-up"></i> Administrateのいいところ

- ModelのCRUDサクッとできる！
- モダンな見た目

![image](https://qiita-image-store.s3.amazonaws.com/0/5691/3d6543f6-9c8d-f684-0d9f-d678d78cf8dc.png)

### <i class="fa fa-check-square-o"></i> Administrateの基本方針

利点、gemの生まれた経緯などは、こちらの作者さんたちのブログポストに記載されています。

[Announcing Administrate](https://robots.thoughtbot.com/announcing-administrate)

とてもざっくり意訳すると・・

#### <i class="fa fa-times"></i> 他の管理系gemの問題点

- Active Admin や RailsAdmin なんかの、既製のAdminツールは良いんだけど、一般的な用途向きすぎで、結局ちょっとボタンを足したりとかのカスタマイズが面倒
- おまけにそのカスタマイズにはgem独自のDSLを覚えないといけなくて面倒

#### <i class="fa fa-circle-o"></i> Administrateの解決方法！

- DSLなし！
- 開発者にいつものやり方（普通のRailsのcontroller, view）でデフォルトの上書きできるようにする！
- ライブラリを小さく維持（コアコンポーネント、プラグインを分離）

##### <i class="fa fa-pencil-square-o"></i> 例えば・・・

- ログイン認証は含まれていない（簡単にauthentication methodをカスタマイズできる）
- 地図を表示したい？そんな時はカスタムフィールド（とパーシャルビュー）を追加！
- パスワードリセットさせるボタンを置きたい？そんな時はパーシャルビューにリンクを追加！コントローラーにカスタムアクションを追加！

だそうです。
どうです？なんか良さそうでしょ？？

## <i class="fa fa-thumbs-o-down"></i> Administrate のイマイチなところ

・・と思って飛びついてみたんですが・・・

- 新しすぎなのでまだ足りないものがある
- 日本語情報がまったくない

という罠があります。


## <i class="fa fa-pencil"></i> 以下、いろいろ頑張った

ハマったところを別記事で書いていきます！
日本語での便利紹介記事がない時の、『知らないgemの歩き方 - どこから探っていくか』も合わせて紹介します。


### <i class="fa fa-check-circle-o"></i> その１：まずは導入！

[Rails管理画面gem の新星！administrate を使おう - その1 導入 - Qiita](http://qiita.com/mm36/items/c36c7a95e4e836dbffef)

### <i class="fa fa-check-circle-o"></i> その２：基本的なカスタマイズ方法について

さらっと触っただけで、早速以下の項目がカスタマイズ対象でした。。

- パスワードフィールドがない（comming soon)
- セレクトボックスがない
- 日本語のローカライズPRがまだリリースに取り込まれてない(comming soon)

カスタマイズしやすい！と謳われているAdministrateの実力やいかに・・

[Rails管理画面gem の新星！administrate を使おう - その2 基本カスタマイズ - Qiita](http://qiita.com/mm36/items/b21ffa65b97246fd8396)


### <i class="fa fa-check-circle-o"></i> その３：他のgemと連携

連携お相手のgemのことがちゃんとわかってればサクッとできる。
（わかってなかったので苦戦・・）

- 認証 : devise
- タグ付け：act_as_taggable_on
- 画像アップロード：paperclip
- ページネーション：kaminari

[Rails管理画面gem の新星！administrate を使おう - その3 有名Gemと連携 - Qiita](http://qiita.com/mm36/items/bd70adb4a80071f0c015)

### <i class="fa fa-check-circle-o"></i> その４：もっともっとカスタマイズ！（ハードル高かった）

TODO : Rails管理画面gem の新星！administrate を使おう - その4 もっとカスタマイズ！

- Polymorphic関連
- 親子モデルをサクッと作れるようにすること

現状Polymorphic関連はサポートされてないが、Polymorphic関連がどう表現されてるかを理解すれば回避可能。
デフォルトのnew画面の使いづらいところを改善！


- - -
全然記事本文と関係ないけど・・
[Qiita の記事の見出しに Font-Awesome を利用して見栄えを良くする #qiita - Qiita](http://qiita.com/tbpgr/items/361d8aaa38fb57d75216)
やってみた。
なんか見栄え良くなった気がする！