Active Adminを使用したバックエンドの追加
Created by Rasmus Kjellberg / 翻訳者: Nana Matsuoka
このガイドは アプリ開発ガイドに沿って、Rails Girls appをすでに構築していることを前提としています。
Active AdminはRuby on Railsのプラグインであり、管理画面のインターフェイスを生成します。このプラグインによって一般的なビジネスアプリケーションのパターンが抽象化され、開発者は、見た目がよく、洗練されたインターフェイスを非常に少ない労力で実装することができます。Active Adminについて、詳しくはこちらをご覧ください。
「Active Admin」gemを追加
Gemfile
を開き、以下の行を追加します。
gemをインストールするために、以下のコマンドを実行します。
bundleの更新後、以下のコマンドでインストーラーを実行します。
このインストーラーの実行によって、Active Adminで使用されるデフォルトを設定するための初期設定ファイルと、すべての管理設定を行うための新たなフォルダがapp/admin下に生成されます。
データベースをマイグレートし、サーバーを起動します。
最初の管理者アカウントの作成
Railsコンソールを開き、AdminUser
モデルに紐づく新規ユーザーを作成します。
以下のような表示がされるはずです。
exit
とコマンドを打つことで、簡単にコンソールセッションを終了できます。
管理画面へのアクセス
http://localhost:3000/admin にアクセスし、先ほど作成した認証情報でログインします。
見てください!新しいActive Adminダッシュボードにアクセスできました。
バックエンドに「Ideas」を追加
Idea
モデルを Active Admin に登録するためには、以下を実行します。
管理画面を更新すると、ナビゲーションにIdeasが表示されます。
「Idea」を任意のモデルに置き換えて、そのモデルを Active Admin に登録することもできます。
ストロングパラメータの設定
モデルを更新する際に、ActiveModel::ForbiddenAttributesError in Admin::IdeasController#update というエラーが発生するのを防ぐため、permit_params メソッドを使用して、変更可能な属性を定義する必要があります。
app/admin/idea.rb
ファイルを開き、 :name
、:description
、:picture
を permit_params
に追加します。
ユーザーの “new”、”edit”、 “destroy” を削除する
管理者でないユーザーによる更新を防止したい場合には、ルーティングファイルを編集し、”index”と”show”のみを許可することで簡単にこの問題を解決することができます。config/route.rb
にonly: [:show, :index]
を追加します。
フロントエンドコードから、次のような、使用できなくなったリンクを削除するのを忘れないでください。 <%= link_to 'New Idea', new_idea_path %>
, <%= link_to 'Edit', edit_idea_path(idea) %>
, <%= link_to 'Destroy', idea, method: :delete, data: { confirm: 'Are you sure?' } %>
さあ見てください!新しい管理画面からアイデアを管理できるようになりました!
次は?
- BlogやCommentsといった別のリソースを管理者に追加してみましょう。