RailsAdminでRails管理画面を作成

ActiveAdmin と並んで人気の、Rails 管理画面用 gem である RailsAdmin を使ってみました。Github のスターなどを見る限り、どちらも同じくらい人気なようです。

sferik/rails_admin

スポンサーリンク

RailsAdmin は Devise に依存しているので、Devise は導入済みの前提とします。Devise インストールの詳細に関しては以下を参照。

Rails4 にて Devise でユーザー登録・ログイン認証・認可の機能を追加 | EasyRamble

— 環境 —
rails 4.1
devise 3.2.2
rails_admin 0.6.2

AdminUser モデルを Devise の generator で生成

試してみましたところ、色々と RailsAdmin が自動で面倒見てくれるはずのところが上手く動作しませんでした。なので、まず先に管理者用ユーザーのモデルを Devise の generator で作成しておきます。AdminUser モデルとしました。

管理者ユーザーはフォームからは登録させずに、コンソールから直接作成するため、registerable, recoverable の Devise モジュールを無効にします。AdminUser モデルから :registerable, :recoverable を削除。

app/models/admin_user.rb

マイグレーションファイルに拡張子 .rb が付いていなかったので、リネーム。

マイグレーションファイルの Recoverable の箇所をコメントアウト。最後のほうの reset_password_token の add_index もコメントアウト。

db/migrate/***_devise_create_admin_users.rb

以上の設定が完了したら、マイグレーション実行です。

これで、管理者ユーザーのモデル(AdminUser)のDBテーブル(admin_usersテーブル)が作成されました。

RailsAdmin のインストール

続いて、本題の RailsAdmin のインストール。Gemfile に追加して bundle install。

Gemfile

続いて rails_admin をインストール。ルーティングを聞かれるので入力する。admin のままでOKならそのまま。

RailsAdmin の設定

生成された rails_admin 用の initializers のファイルを編集し、Devise との連携を設定します。

config/initializers/rails_admin.rb

user → admin_user, current_user → current_admin_user に変更。

routing の設定。devise_for :admin_users の行が、mount RailsAdmin::Engine の行より上に来るようにします。

config/routes.rb

webrick 再起動。

管理者ユーザーを作成しログイン

コンソールから管理者ユーザーを作成します。

ブラウザから http://localhost:3000/admin にアクセスすると、http://localhost:3000/admin_users/sign_in にリダイレクトされるので、作成した管理者ユーザーのアカウントでログイン。

ログイン後、http://localhost:3000/admin/dashboard にてダッシュボードを確認できます。

will_paginate との conflict 解消、翻訳ファイルの設定など

will_paginate を使っている場合、以下のエラーが発生します。

https://github.com/sferik/rails_admin/wiki/Troubleshoot

これは、will_paginate と rails_admin が依存している kaminari が conflict するのが原因です。その解消のために以下を作成。

config/initializers/kaminari.rb

RailsAdmin の日本語化には、以下の翻訳ファイルを活用します。ありがたい。

mshibuya / rails_admin.ja.yml

config/locales 以下に日本語翻訳ファイルを設置。

webrick 再起動後に動作確認。active_admin よりはちょっと面倒でしたが、一応これで rails_admin も導入に成功しました。

シンプルで無駄な装飾のない active_admin も良いですが、UI は rails_admin のほうが綺麗な感じです。どっち使おうかな…シンプルなほうが好みですので、おそらく active_admin を使うことになりそうです。

スポンサーリンク
パーフェクト Ruby on Rails は、最近読んだ Rails 本の中では一番役に立った本です。Chef や Capistrano など Rails と共によく使用される技術にも触れてあります。Ruby on Rails 4 アプリケーションプログラミングは、入門的な内容で Rails の機能全体を網羅されています。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!