[Rails] ActiveAdminにCommentモデルをregisterできない

概要

Railsの管理画面作成用gemであるActiveAdminを用いて、ユーザのコメントなどを扱うCommentモデルを管理画面で読み書きできるようにしようとした際のトラブルと、その解決策の備忘録。

問題点

以下コードで、CommentモデルをActiveAdminにregisterした。

ActiveAdmin.register Comment do
end

以下のエラーが出た。

ActiveAdmin::ResourceCollection::ConfigMismatch
You’re trying to register ActiveAdmin::Comment as Comment, but the existing ActiveAdmin::Resource config was built for Comment!

あれ、もうCommentモデルは管理画面に追加済みだったかな‥‥?
誰かが先に対応したのかな‥‥?

と試行錯誤してたがそういうわけじゃないみたい。

解決策

どうやらActiveAdmin側にも、管理者のコメントを扱うためのCommentモデルが存在し、名前が競合してしまったのが原因らしい。

解決策として、ActiveAdminの設定ファイルにて、ActiveAdmin側のCommentモデルの名前を差し替える手段があるので、ActiveCommentに差し替える。

config/initializers/active_admin.rb

# CommentモデルとActiveAdminのCommentモデルが競合するので、
# ActiveAdmin側を明示的にAdminCommentに変更する
config.comments_registration_name = 'AdminComment'

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です