iT邦幫忙

0

以為Heroku push成功? 來個回馬槍 zeitwerk/~~/callbacks.rb:17:in `on_file_autoloaded' , Zeitwerk::NameError

標題很醜,只希望當有遇到相同問題時,能找到這篇解決問題~~

大家好,我是Sean,既上偏Heroku跟Postgresql 問題,希望有幫助到大家,

直接正題,Push成功後,再來就是open apk

沒想到結果fail,如圖
https://ithelp.ithome.com.tw/upload/images/20201019/20126905bwP8doiv1a.png

之前以為push然後heroku run rake db:migrate成功就行了,結果來個回馬槍想不到吧,誰說沒有槍頭就~~

當heroku run rails c 發生問題,表示rails沒安裝成功,有貓膩

於是看了log如圖
https://ithelp.ithome.com.tw/upload/images/20201019/20126905vT4TafDbgG.png

zeitwerk/loader/callbacks.rb:17:in `on_file_autoloaded'

Zeitwerk::NameError

解決方法 改controller.rbconfig/application.rb

  • 第一修改controller.rb語法

如圖原為紅色註解掉的
https://ithelp.ithome.com.tw/upload/images/20201019/20126905nascynIvbG.png
改成藍色 module 跟class這樣,所有controller都修改

  • 第二修改config/application.rb
    https://ithelp.ithome.com.tw/upload/images/20201019/20126905VAtypxeHic.png
    來源stackoverflow
    config/application.rb 新增 config.autoloader = :classic

從 Rails 6 之後開始使用 Zeitwerk,發生問題,詳細可以看autoload

修改後,建議在本地端rails s 有沒有成功,push上heroku

記得heroku run bundle install, heroku run rails db:migrate

如果heroku run rails c成功,表示解決了

自己的小範本,排版很醜,請見諒shop

以上解決gems/zeitwerk-2.3.0/lib/zeitwerk/loader/callbacks.rb: Zeitwerk::NameError

從Postgresql 問題到Zeitwerk,花了快三天debug,正所謂無情debug

心得感想,臨摹別人的程式好處是快,但缺點是程式版本影響出現很多error,如這篇,所以就要靠自己決心跟意志力了


尚未有邦友留言

立即登入留言