管理セクションは、ほとんどのアプリケーションに共通のモジュールです。 Rails アプリケーションには、Active Admin と呼ばれる gem があります。これを使用すると、管理インターフェイスまでのアプリケーションを最初から簡単に作成できます。
導入
すべての管理タスクを管理できるフレームワークです。データを管理するためのアクセスを提供する美しい管理インターフェイスが作成され、簡単にカスタマイズできます。
インストールと設定方法は?
First I will be creating three modules for my Rails 5 application.
Artist, Producer and Movie
関係: アーティスト.rb が多数 :映画プロデューサー.rb が多数 :映画映画.rb 所属 :アーティスト所属 :プロデューサー
activeadmin を gemfile に追加し、バンドルインストールを実行しましょう。
gem 'devise' gem 'activeadmin'、github: 'activeadmin' バンドルのインストール
Rails 5 には追加する必要のある依存関係がいくつかあります。以下の gem を gemfile に追加し、バンドル インストールを再度実行します。
gem 'inherited_resources'、github: 'activeadmin/inherited_resources'
ジェネレーターを実行してアクティブな管理者をインストールします。すべての管理ファイルが app/admin ディレクトリの下に作成されます。アクティブな管理者が認証に使用するデバイス gem。
Rails g active_admin:install
上記のコマンドを実行すると、いくつかの設定を手動で構成する必要があることが端末に表示されます。
ActiveAdmin認証
Requires two settings to authenticate and use current user in the application.
To force controller methods to authenticate
config.authentication_method = :authenticate_admin_user!
メソッドから現在のユーザーにアクセスするには
config.current_user_method = :current_admin_user
Both above settings can be set to false to turn off authentication.
Start the rails server and navigate to the http://localhost:3000/admin。次の認証情報を使用してログインできます。
ユーザー名: [email protected] パスワード: パスワード
ログインに成功すると、管理者ダッシュボードが表示されます。トップメニューにはアクティブ管理者に登録されているモデルのリストが表示されます。現時点では、モデル AdminUser は 1 つだけです。ここで管理者情報を作成または編集できます。
ビューのカスタマイズ
ここでは、モデルをアクティブな管理者に登録する必要があります。
Rails は active_admin:resource を生成します。 アーティスト Rails は active_admin:resource を生成します。 プロデューサー Rails は active_admin:resource を生成します。
その前に、データベースにデータを追加しましょう。
Seeds.rb a1 = アーティスト.create!(名前: 'アーティスト-1') a2 = アーティスト.作成!(名前: 'アーティスト-2') p1 = プロデューサー.作成!(名前: 'プロデューサー-1') p2 = Producer.create!(name: 'Producer-2') Movie.create!(name: 'movie-1'、リリース年: 2014、監督: 'director-1'、説明: 'Lorem Ipsum は単に印刷のダミー テキストですと植字業界。」、アーティスト: a1、プロデューサー: p1)
アプリケーションを実行すると、インターフェース上にシードが表示され、データを編集および削除できます。
カスタマイズ
デフォルトでは、リソースはグローバルナビゲーションに表示されます。メニューで不要な場合は無効にすることができます。
ActiveAdmin.register Movie do メニュー false end
メニュー ラベルの名前を必要なラベルに変更します。
ActiveAdmin.register Movie do メニュー ラベル: '映画のリスト' 終了
メニューの優先順位は次のように設定できます。
ActiveAdmin.register ムービー実行メニューの優先順位: 4 終了
デフォルトでは、すべての列が表示に使用されます。表示に使用するインデックスメソッドで必要な列をリストすることができます。ここでは、admin/movie.rb からタイムスタンプ列を削除しました。
インデックス do 列 :name 列 :description 列 :リリース年 列 :ディレクター 列 :プロデューサー 列 :アーティスト アクション 終了
インデックスメソッドのフィールドの前に列名を指定することで、列名をカスタマイズできます。
列「名」、:name
ページの右側にフィルターセクションがあります。デフォルトでは、アクティブな管理者はbelongs_to関係を検出します。フィルターセクションをカスタマイズできます。
フィルター:プロデューサー、:as => :check_boxes
フィルター :artist, :as => :check_boxes
CSVカスタマイズ
dafult アクティブ管理者は、表示されているすべての列を csv にダウンロードします。ここでは、CSV 設定を使用して必要な列をカスタマイズできます。
ActiveAdmin.register Movie do csv Force_quotes: true、col_sep: ';'、column_names: false do column :name column(:artist) { |movie|映画.アーティスト } コラム(:プロデューサー) { |映画| movie.プロデューサー } 終了 終了
グローバルでも CSV の設定を構成できます
# config/initializers/active_admin.rb
# CSV ビルダー区切り文字を設定します
config.csv_options = {col_sep: ';' }
# 引用符の使用を強制する
config.csv_options = {force_quotes: true }