1
1

More than 1 year has passed since last update.

【heroku】NameError: uninitialized constant Rack::MiniProfiler、Day11

Posted at

本日Herokuへアプリの試作版をデプロイしました。その際に「Precompiling assets failed.」とエラーが出たので、その原因と解決方法について紹介します。

概要

ターミナル
git push heroku master

ターミナルにて上記コマンドを実行すると、
エラーが出ます。

       Precompiling assets failed.
 !
 !     Push rejected, failed to compile Ruby app.
 !     Push failed

コンパイルがうまくいかないために、Herokuへのデプロイがうまくいかないようです。では、具体的にどの部分のコンパイルがうまくいっていないのか特定する必要があります。ターミナルの記述を遡って、どこにエラーが出ているのか確認します。

原因

ターミナルの記述を遡ると、errorらしき部分を見つけました。

       Detecting rake tasks
-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       rake aborted!
       NameError: uninitialized constant Rack::MiniProfiler

エラーの原因を日本語訳すると、「Rack::MiniProfilerが初期化されていません」とのことですが、Rack::MiniProfilerに全く心当たりがないので、ネットで調べてみました。↓がその結果になります。

要約すると、Webサイトの素早さなどのパフォーマンスを計測してくれるGemです。「rails new」でアプリの大枠を生み出した時から、デフォルトで搭載されていたもので、特に気にせず利用していましたが、今回のエラーを引き起こしている原因に思えます。では、仮説を検証しましょう。

解決方法

Gemfileを確認します。

Gemfile
group :development do
  (中略)
  # gem 'rack-mini-profiler', '~> 2.0'
  (中略)
end

MiniProfiler(正式名称はrack-mini-profiler)を発見したので、これをコメントアウトし、無効化します。また、これに付随して生成されたファイルの記述もコメントアウトして無効化します。

config/initiaalizers/rack_profile.rb
# Rack::MiniProfiler.config.start_hidden = true

以上で、「git push heroku master」を実行すると、無事デプロイできました。

1
1
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
1