gpt4 book ai didi

ruby-on-rails - 内部服务器错误,无论我向 heroku 应用程序推送什么(Ruby on Rails)

转载 作者:太空狗 更新时间:2023-10-29 14:47:38 25 4
gpt4 key购买 nike

我在 Heroku 上托管的 ruby​​ on rails 应用程序出现问题。无论我向存储库推送什么,我都会收到一个 Internal Server Error 字符串,但没有关于我做错了什么的额外信息。

我决定进行的每项更改都将在本地很好地工作,但我似乎无法避免每次推送时都会导致此内部服务器错误。我必须不断回滚并弄清楚我需要解决什么问题才能阻止这种情况发生。

有人对我有什么建议吗?

更新

我将存储库回滚到稳定的变更集,然后将存储库克隆到我机器上的另一个目录。我对一个 javascript 文件做了一个小改动以修复一个小错误,甚至那个推送导致站点崩溃并给出 Internal Server Error 消息。我的环境有问题吗?

更新2

对于最近给出答案的人,请查看对问题的评论,因为您的一些建议已经得到解决。谢谢!

回答:

我不得不承认,我仍然不明白为什么事情会以现在的方式运行,但是似乎在不破坏站点的情况下推送的提交包含一个 Rubymine 似乎没有的三元运算符头脑。在某个时间点之后,每次提交都会导致此Internal Server Error。但在将三元运算符转换回 if-else-end 条件语句后,这种行为就停止了。我希望这对将来遇到类似问题的人有所帮助,尽管有些晦涩。

最佳答案

我从日志中看到的主要问题是

!! Unexpected error while processing request: can't modify frozen array

在 Google 上快速搜索“rails production can't modify frozen array”给出了 related question在 SO 上(也关于 heroku。)

您可以做的其他事情:

  1. 运行 heroku run script/rails console 并查找错误。
  2. 在您的开发机器上安装 postgresql 并在生产模式下进行完整的测试运行。这意味着使用 RAILS_ENV=production 前缀运行 rake db:load_schemarake assets:precompilerails s .确保您使用的是 thin
  3. 启动一个镜像 Heroku 设置的虚拟机,使用 Foreman 执行第 2 步.
  4. 注册 Airbrake 并检查错误。

(实际上,如果您执行了 3. 并且它仍然可以在您的本地机器上运行,那么是时候联系 Heroku 支持了。)

不得已:二分查找

让我们调用您当前的存储库 project.git。复制此 repo,并将 master 分支重命名为 future。将 future 的最早工作提交 checkin 新存储库的 master 分支,并创建一个新的 Heroku 应用程序。推送和测试。

  1. 如果没有错误,向前跳到中点。
  2. 如果有错误,向后跳转。
  3. 推送并测试。重复。

继续这样做,直到找到引入错误的确切提交。这需要很长时间。 git bisect可能会有用。

关于ruby-on-rails - 内部服务器错误,无论我向 heroku 应用程序推送什么(Ruby on Rails),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17646845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com