学習記録

アウトプット用に作りました

RailsAdminを使って管理者機能を実装

RailsAdminとは

管理画面をテンプレート的に作成できるgemの一つです。 railsにはたくさんの管理画面を実装できるgemがありますが、中でも簡単でデザインがとてもスタイリッシュだったので、RailsAdminのgemを使ってみることにしました。
参考 : rails管理画面系gem比較してみた - Qiita


RailsAdminの使用方法

まず最初にGemfileにrails_adminを追加してbundle installを行います。

gem 'rails_admin'

generatorを起動させます。

$ rails g rails_admin:install

f:id:kimura34:20210429212651p:plain

? Where do you want to mount rails_admin? Press <enter> for [admin] >と聞かれるのでenterを入力します。するとルーティングとrails_admin.rbファイルが追加されます。rails sを起動して、localhost:3000/adminを開くと管理画面に遷移します。
f:id:kimura34:20210429213216p:plain Hiroshiというアプリに事前にAlbums、Books、Dramas、Movies、Stagesというテーブルを作成してあります。それぞれいくつかデータが入っている状況です。
ここでデータの追加や編集、削除などの操作をすることができます。
しかし今のままでは、誰でも管理画面にアクセスできてしまうので、セキュリティ的に問題があります。なのでBASIC認証(ユーザー名、パスワード認証)をかけていきます。
次のコードをrails_admin.rbファイルの一番上に追加します。

config/initializers/rails_admin.rb

config.authenticate_with do
    authenticate_or_request_with_http_basic('Site Message') do |username, password|
      username == 'admin' && password == 'password'
    end
end

username == 'admin' && password == 'password'の部分は実際に使用するユーザー名とパスワードになります。

再度rails sでサーバーを起動して、localhost:3000/adminにアクセスすると、パスワード入力画面になります。 f:id:kimura34:20210429214310p:plain

参考 : GitHub - sferik/rails_admin: RailsAdmin is a Rails engine that provides an easy-to-use interface for managing your data