Edited at

RailsAdminを導入してみた

More than 5 years have passed since last update.

Rails3 で管理画面を作成するなら RailsAdmin で決まりかもに沿ってやってみたけど、ちょこちょこ躓いたのでメモ。

deviseは2.1.2、rails_adminは0.0.5。

gem 'devise'

gem 'rails_admin'

ここでは管理者のモデルをAdminとする。まずはdeviseでこれを作る。

$ bundle install

$ rails g devise Admin
$ vim app/models/admin.rb

-  devise :database_authenticatable, :registerable,

- :recoverable, :rememberable, :trackable, :validatable
+# devise :database_authenticatable, :registerable,
+# :recoverable, :rememberable, :trackable, :validatable

$ vim config/routes.rb

-  devise_for :admins

+# devise_for :admins

$ rake db:migrate

これでadminsテーブルができた。

続けてrails_adminを導入する。

$ rails g rails_admin:install

$ vim app/models/admin.rb

-#  devise :database_authenticatable, :registerable,

-# :recoverable, :rememberable, :trackable, :validatable
+ devise :database_authenticatable, :registerable,
+ :recoverable, :rememberable, :trackable, :validatable

マウントする前にdeviceに登録するようにルーティングを調整。

$ vim config/routes.rb

+  devise_for :admins

mount RailsAdmin::Engine => '/admin', :as => 'rails_admin'
-
-# devise_for :admins

$ rake db:migrate

$ open http://127.0.0.1:3000/admins/sign_up

ユーザの登録が終わったら:registerableを外す

$ vim app/models/admin.rb

-  devise :database_authenticatable, :registerable,

+ devise :database_authenticatable,