Webpackerを使ったRailsで、データの作成、更新、削除などのDB操作を行う管理画面をとても簡単に作成するActiveAdminの導入時に次のようなエラーが発生した時の対処法について。
対処法
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の管理画面が表示されます。
以上です。