【Rails】ActiveAdmin Webpacker利用時のエラー対処法: uninitialized constant AdminUser & MissingEntryError in Admin::Dashboard#index

rails-prograshi(プロぐらし)-kv Rails
記事内に広告が含まれていることがあります。

Webpackerを使ったRailsで、データの作成、更新、削除などのDB操作を行う管理画面をとても簡単に作成するActiveAdminの導入時に次のようなエラーが発生した時の対処法について。

エラー1

NameError: uninitialized constant AdminUser
~/Desktop/Sites/Fleetnation/app/admin/admin_user.rb:1:in `’

エラー2

Webpacker::Manifest::MissingEntryError in Admin::Dashboard#index

Showing /usr/local/bundle/gems/activeadmin-2.9.0/app/views/active_admin/page/index.html.arb where line #2 raised:

Webpacker can’t find active_admin.js in /rails-vue/public/packs/manifest.json. Possible causes:

  1. You want to set webpacker.yml value of compile to true for your environment
    unless you are using the webpack -w or the webpack-dev-server.
  2. webpack has not yet re-run to reflect updates.
  3. You have misconfigured Webpacker’s config/webpacker.yml file.
  4. Your webpack configuration is not creating a manifest.

対処法

ActiveAdminをWebpackerで使うには設定の変更が必要です。方法は2つあります。

ActiveAdminを再インストールする

ActiveAdminが未インストールの場合や、セットアップを上書きしても問題ない場合は、–use_webpackerオプションをつけてセットアップを行うこともできます。

rails g active_admin:install --use_webpacker

このコマンド一つで、webpackerを使ったアプリケーションで使えるようになります。

Railsの再起動

rails s

Rails起動後、コンパイルが完了すれば完了です。

http://localhost:3000/admin にアクセスすれば、Active Adminの管理画面が表示されます。


マニュアルで設定する

もう一つの方法です。ActiveAdminの設定ファイルを編集し、指定のコマンドを実行します。

active_admin.rbの編集

config/initializers/active_admin.rbを開いて、下の方にあるconfig.use_webpacker = trueのコメントアウトを外します。

ActiveAdmin.setup do |config|
  (省略)
  config.use_webpacker = true
end


コマンドの実行

次に、rails g active_admin:webpackerコマンドでwebpackerに必要なファイルやgemをインストールします。

▼実例

# rails g active_admin:webpacker
Running via Spring preloader in process 189
      create  app/javascript/packs/active_admin.js
      create  app/javascript/stylesheets/active_admin.scss
      create  app/javascript/packs/active_admin/print.scss
      create  config/webpack/plugins/jquery.js
      insert  config/webpack/environment.js
      insert  config/webpack/environment.js
         run  yarn add @activeadmin/activeadmin from "."
yarn add v1.22.5
[1/4] Resolving packages...
[2/4] Fetching packages...
info fsevents@2.3.2: The platform "linux" is incompatible with this module.
info "fsevents@2.3.2" is an optional dependency and failed compatibility check. Excluding it from installation.
info fsevents@1.2.13: The platform "linux" is incompatible with this module.
info "fsevents@1.2.13" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
warning " > vue-loader@15.9.2" has unmet peer dependency "css-loader@*".
[4/4] Building fresh packages...
success Saved lockfile.
success Saved 4 new dependencies.
info Direct dependencies
└─ @activeadmin/activeadmin@2.9.0
info All dependencies
├─ @activeadmin/activeadmin@2.9.0
├─ jquery-ui@1.12.1
├─ jquery-ujs@1.2.3
└─ jquery@3.6.0
Done in 37.69s.

Railsの再起動

rails s

Rails起動後、コンパイルが完了すれば完了です。

http://localhost:3000/admin にアクセスすれば、Active Adminの管理画面が表示されます。


以上です。

(参考)ActiveAdmin公式 インストール方法

タイトルとURLをコピーしました