Home » gem » 「administrate」でrailsアプリを管理ユーザーが管理する

「administrate」でrailsアプリを管理ユーザーが管理する

administrate
Administrateは、Rails AdminやActiveAdminのようなプロジェクトに大きな影響を受けていますが、サイト管理者にとってより良いユーザーエクスペリエンスを提供し、開発者がカスタマイズしやすいようにすることを目指しています。 DSL(ドメイン固有言語)なし – 最も単純なユースケースをサポートし、プレーンなRailsコントローラやビューなどの標準ツールを使用してデフォルトをオーバーライドできるようにします。 – ライブラリをコアコンポーネントとプラグインに分割するので、各コンポーネントは小さく維持されやすくなります。

今回administrateというgemを紹介していきたいとおもいます。

administrateとは、Railsプロジェクトを管理するgemです。

アプリの表側をユーザーが操作しているとすれば、

administrateはアプリの裏側を操作し、アプリを管理できるgemです。

 

例として、ユーザーがコンテンツを作成してそのコンテンツに、

何らかの問題が起きた時に管理ユーザーが、

削除なり編集なりの修正をすることができます。

 

そしてadministrateは、ほかの管理gemと比べて

見やすい画面で操作しやすくなっています。

環境 
Ruby2.3.3
Ruby on Rails5.1.4
OSwindows10

インストール方法

Gemfileに該当gemを追加します。

gem 'administrate', '~> 0.8.1'

Railsプロジェクトにインストールします。

$ bundle install

ダッシュボードを作成していきます。
このダッシュボードでCRUDの操作ができます。

$ rails generate administrate:install

ダッシュボードにアクセスする場合は、
http://localhost:3000/admin にアクセスすると
管理ページが出力されます。

管理したいリソースの追加

リソースが追加された場合、

自動的にリソースのダッシュボードが作成されて、
管理ユーザーが管理できるようにはなりません。

リソースを追加後に管理したい場合、

少し設定をしなければなりません。

$ rails generate administrate:dashboard post
   create  app/dashboards/post_dashboard.rb
   create  app/controllers/admin/posts_controller.rb

管理したいリソースを追加する場合上記のコマンドを実行します。
リソースの追加時のコマンドは、
rails generate administrate:dashboard [リソース名の単数形]
リソースが追加されるとリソースの管理画面が作成されます。

routes.rbの設定

リソースのダッシュボードを作成して、
アクセスできるのかとおもいきや、できないみたいです。
routes.rbでの設定をしなければリソースのダッシュボードに
アクセスできないみたいなので設定していきます。

routes.rbのadminの名前空間にリソース名を記載しないと、
アクセスできないので設定しましょう。

namespace :admin do
    resources :posts # 管理したいリソース名を追加
    resources :articles # 管理したいリソース名を追加
    resources :items # 管理したいリソース名を追加

    root to: "posts#index"
  end

リソースを追加するたびにroutes.rbに設定します。

これらの設定を追加するとリソースのダッシュボードに

アクセスできるようになります。

 

追加したリソースがpostだと仮定して

postのダッシュボードにアクセスしてみます。

アクセスしたいダッシュボードがpostの場合は下記のアドレスになります。

http://localhost:3000/admin/posts

レコードの作成をしたり、削除や編集などもすることができます。

そして検索機能がありますので、大量のレコードがあっても

操作したいデータがすぐに見つかります。

参考文献

, ,

コメントを残す

%d人のブロガーが「いいね」をつけました。