はじめまして。
オンラインのプログラミングスクールでRuby, Railsの学習を続けているYori-Goreng(ヨリゴレン)です
今回は、ActiveAdminを用いた管理画面作成の一部をご紹介します
#環境
- ruby 2.6.6
- Rails 6.0.3.1
- MacOS Catalina バージョン10.15.4
#ActiveAdminとは?
ActiveAdminは、Ruby on Railsにおいて管理画面を生成するgemのことです。管理画面からは、データの作成や更新、削除などが容易に行えるようになります。
とても便利なので、使ってみない手はありません
説明文引用:Active Admin is a Ruby on Rails plugin for generating administration style interfaces. It abstracts common business application patterns to make it simple for developers to implement beautiful and elegant interfaces with very little effort.
#ActiveAdmin インストール手順
- Gemfileに
activeadmin
とdevise
というgemを追加し、bundle install
でgemをインストール。
gem 'activeadmin'
gem 'devise'
-
rails g active_admin:install
を実行。以下のような文章がターミナルに表示されます。
===============================================================================
Some setup you must do manually if you haven't yet:
1.Ensure you have defined default url options in your environments files. Here
is an example of default_url_options appropriate for a development environment
in config/environments/development.rb:
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
In production, :host should be set to the actual host of your application.
2. Ensure you have defined root_url to *something* in your config/routes.rb.
For example:
root to: "home#index"
3. Ensure you have flash messages in app/views/layouts/application.html.erb.
For example:
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
4.You can copy Devise views (for customization) to your app by running:
rails g devise:views
===============================================================================
-
rails g model model名
により、管理画面で管理するモデルを作成。例として、rails g model text
を実行。 -
モデルと同時に作成されたマイグレーションファイルを修正し、必要となるカラムを追加。
class CreateTexts < ActiveRecord::Migration[5.2]
def change
create_table :texts do |t|
#今回は、title, contentという2つのカラムを追加してみます。
t.string :title
t.text :content
t.timestamps
end
end
end
-
rails db:migrate
でマイグレート。 -
rails db:seed
でデータベースにユーザーの初期データを投入。 -
rails s
で、サーバーを起動。 -
http://localhost:3000/admin にアクセスし、ログイン画面を表示。
- 以下のID、パスワードでログイン
UserID: admin@example.com
Password: password
- すると、ActiveAdminで作成した管理画面が表示されます。
#rails g active_admin: resource model名
このコマンドにより、model名で指定したモデルの管理メニューを作成します。
今回は、先程作成したtextモデルの管理メニューを追加したいので、rails g active_admin:resource text
を実行します。
そうすると、app/adminにtexts.rb
が作成され、管理画面にはTextsのメニューが追加されます。この画面から、モデルのデータを更新したりできます。
ちなみに、texts.rb
にpermit_params :カラム名
を追加しないと、データを更新できないようです。
ActiveAdmin.register Text do
permit_params :title, :content
end
試しにデータを追加してみます。rails c
でコンソールを立ち上げ、createアクションを実行します⇒モデル名.create(カラム名: "カラムの値")
rails c
Text.create(title: "1", content: "hogehoge")
無事に追加されていました。画面右端のView, Edit, Deleteでデータを簡単にいじることができます。
#終わりに
ActiveAdminには他にも沢山の機能があるので、公式サイトや他のQiita記事をみてどんどん学んでみてください