Ruby on Rails には管理画面をテンプレート的に作成できるgemがいくつかあります。
今回は、カスタマイズ性はそこまで高くはないもののセットアップが簡単な「RailsAdmin」を使って管理画面を作成します。
管理画面を作成する
最初にgemをインストールします。
Gemfileに記述し、bundel installを実行します。
gem 'rails_admin', '~> 2.0.0.beta'
$ bundle install
$ rails g rails_admin:install
管理画面へアクセス
まずはサーバを起動させます。
$ rails s
ブラウザから、railsの基本画面に "/admin" を後付けしてアクセスします。
初期設定であれば "http://localhost:3000/admin" をアドレスバーに入力します。
インストールに成功していれば、次のような画面が表示されます。
(初回は少し時間がかかります)
![スクリーンショット 2020-02-09 15.08.40.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F364501%2Fc497cfac-16cb-c038-8ea4-6b3ba7d66818.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=e125c06f989e92f8bbde1523feafef73)
すでに作成したテーブルを作成している場合にはそれが表示されます。
私の環境の場合、Questions というテーブルを作成しているので表示されていますね。
![スクリーンショット 2020-02-09 15.10.45.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F364501%2F6454febb-b3b5-92fe-7edc-a2983a46c71c.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=e2800ad272a476856f63f22e5ab6e7eb)
テーブル名を選択すると、編集画面に飛べます。
"+Add new" からレコードを追加したり、外部へ出力したりできます。
BASIC認証をするよう制限をかける
デフォルトだとアドレスバーから誰でも管理画面にアクセスできてしまうので、セキュリティ的に問題があります。
BASIC認証(ユーザー名、パスワード認証)をかけましょう。
# 一番上に追加
config.authenticate_with do
authenticate_or_request_with_http_basic('Site Message') do |username, password|
username == 'admin' && password == 'admin'
end
end
サーバを起動しなおして、"http://localhost:3000/admin" にアクセスすると認証ダイアログが表示されます。
![スクリーンショット 2020-02-09 15.15.39.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F364501%2Ff29687a6-192f-4e04-48bf-b03ca42da22f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=bd8c06b78b768b1dc392d18ba78191d7)
上記ダイアログが表示されれば成功です。