2016/05/25
rails admin + deviseを利用して管理画面を自動生成する
Ruby on Railsの管理画面自動生成には、typus等様々なものが存在しますが、今回はrails adminとdeviseを利用した管理画面生成を記事にしてみました。
1.deviseのインストール
今回は割愛します。
2.管理画面を利用したいmodelにdeviseを追加する
1 | rails g devise モデル名 |
3.deviseが追加されたmodelの調整を行う
deviseをmodelに追加された際には、
:database_authenticatable, :registerable,:recoverable, :rememberable, :validatableが自動的に追加されます。
管理画面を生成する際は、:registerable,:recoverable,を削除するのが一般的なようです。
もし、上記を削除した際には、deviseを追加した際に、上記のカラムがmigrationに追加されますが、
Recoverableとreset_password_tokenの部分も同様に削除します。
調整が完了したらrake db:migrateを実行します。
4.Gemfileにadmin_railsのgemを追加し、bundle installを実行
そしてそのあと、rails g rails_admin:installを実行し、rails_adminのconfigファイルを生成する。
5.rails_adminとdeviseの連携を行う
config/initializers/rails_admin.rb
にて
1 2 3 4 5 | ## == Devise == # config.authenticate_with do # warden.authenticate! scope: :モデル名 # end # config.current_user_method(&:current_モデル名) |
と元もとコメントアウトされている部分を外す。
1 2 3 4 5 | # == Devise == config.authenticate_with do warden.authenticate! scope: :user end config.current_user_method(&:current_user) |
6.routeの設定を行う
1 | devise_for :モデル名(sが必要かもしれない) |
7.rails consoleより管理画面ユーザーの追加
1 2 3 4 | m = Model.new m.email = "example@www.example.com" m.password = "password" m.password_confirmation = "password" |
8.リロードを行い、root_url/adminにアクセスする
所感・参考
30分ぐらいで完成します。
Author Profile
スターフィールド編集部
SHARE