1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Active Adminを使ったので備忘録

Posted at

アプリにActive Adminを入れたので、手順を備忘録として書いてます。

gemのインストール

gem 'activeadmin'

$bundle install

generator を実行して ActiveAdmin に必要なファイルを生成

$rails g active_admin:install
上記コマンドで必要なファイルが生成される。
generator で migration ファイルも作成されたので migration を実行
$rails db:migrate

これで、seeds.rbに初期データとして、ログイン用の(admin)ユーザが作成されている。下記の感じで。

AdminUser.create!(email: 'admin@example.com', password: 'password', password_confirmation: 'password') if Rails.env.development?

なので、実行してadminuserを作ります。
$rails db:seed

ログイン機能付きの管理画面を確認できる

サーバーを再起動してから http://localhost:3000/admin
にアクセスするとログイン画面が表示されるので、先ほど初期データとして投入した下記のユーザ情報でログインできる。

モデルに対する管理ページを作成

Userモデル

$rails g active_admin:resource コマンドにモデル名を渡すことにより、そのモデルに対する管理ページを作成することができる。

下記のようにして User モデルの管理ページを作成
$ rails g active_admin:resource User

これでapp/admin/users.rbが作成され、画面の上部にも表示される。

しかし、このまま User を新規作成しようとすると ActiveModel::ForbiddenAttributesError が出る。

これを解決するには先ほど作成された app/admin/users.rb に permit_params を追加する必要があります。
これは Rails のストロングパラメータのように、許可したいパラメータのみを記述するメソッドです。
許可したいパラメータは name ,email だけなので、permit_params に name, email を追加します。

app/admin/users.rb
ActiveAdmin.register User do
  permit_params :name, :email
end

こうすることで、Userを新規作成することができるようになります。

Messageモデル

user同様にmessageを管理できるように、下記コマンド。
rails g active_admin:resource Message

パラメータの許可を追記。

app/admin/messages.rb
ActiveAdmin.register Message do
  permit_params :user_id :title, :content
end

検索をかけられる

右側に検索フォームがあり、条件を指定して抽出することができます。
Userのセレクトボックスにmessagesのフィルターが確認できるかと思います。
これはuserモデルとmessageモデルにでhas_manyとbelongs_toの関連性を定義してあるからです。

逆にMessageのセレクトボックスにも、userをフィルターにかけて検索することができます。

参考:https://qiita.com/enomotodev/items/5f6d9348207124a41bf9

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?