以为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,如这篇,所以就要靠自己决心跟意志力了


<<:  SCPM requires Internet Explorer,version 5.5 or 6.x

>>:  随身碟无法读取,在磁碟管理中显示为No Media

成员 16 人:明白「客情」和「爱情」的道理

客户,是不是真的好烦? 「如果假日突然感觉到烦,那就真的会很烦。」 因为到了 16 人了,经常性地会...

爬虫怎麽爬 从零开始的爬虫自学 DAY29 python网路爬虫开爬10-从网页爬取图片

前言 各位早安,书接上回我们介绍了如何抓取图片 URL 并储存图片,今天我们要结合之前的爬虫功能从网...

Day.26 实务应用 - 实作表自动分区管理( event / procedure / partition )_1

procedure简单来说就跟写程序一样,只是procedure是运用资料库的程序语言,透过不同语...

Dungeon Mizarka 001

第一人称地城冒险游戏介绍 第一人称地城冒险游戏(FP Dungeon Crawler, FPDC)类...

WIN 10 看不到WIFI

Q : wi10 看不到wifi 在cmd 输入 netsh wlan set hostednetw...