日別アーカイブ: 2022年2月9日

(Zeitwerk::NameError)エラー対処録Ruby+Heroku

Herokuでうまくデプロイできていなかったので

heroku run console 

で調べたところ次のようなエラーが出ました。

/app/vendor/bundle/ruby/3.0.0/gems/zeitwerk-2.5.4/lib/zeitwerk/loader/callbacks.rb:25:in `on_file_autoloaded’: expected file /app/app/serializers/〇〇_serializer.rb to define constant 〇〇Serializer, but didn’t (Zeitwerk::NameError)

解決法

config.autoloader = :classic

config/application.rbに追加する

〜〜
〜〜

#moduleから上は省略
module Api
  classApplication < Rails::Application

# Initialize configuration defaults for originally generated Rails version.
    config.load_defaults6.1
# Configuration for the application, engines, and railties goes here.
# These settings can be overridden in specific environments using the files
# in config/environments, which are processed later.
# config.time_zone = "Central Time (US & Canada)"
# config.eager_load_paths << Rails.root.join("extras")
#  これを追加↓
     config.autoloader = :classic
# Only loads a smaller set of middleware suitable for API only apps.
# Middleware like session, flash, cookies can be added back manually.
# Skip views, helpers and assets when generating a new resource.
     config.api_only = true
  end
end

追加して保存後に

bundle exec pumactl start

↑をコマンドしたところpumaを起動することができました。