新手问题 docker 管理 ruby,启动 unicorn 服务报错

qyihu · 2017年08月12日 · 最后由 southwolf 回复于 2017年08月16日 · 1334 次阅读

万能的 ruby 大神们,小弟最近加入公司的一个 ruby 项目组,遇到一个非常棘手的问题,麻烦大神们帮忙看看呀,这个问题困扰我茶不思饭不想了

小弟感激不尽了。。。

请学会翻墙和使用 Google 搜索错误信息

请尽量先列出自己的思路和尝试过程,而不是单纯的伸手

解决思路如下:

  1. 用 Google 搜索 错误信息 uninitialized constant ActiveSupport::Deprecation::MethodWrapper
  2. 分析错误日志,要知道 uninitialized constant 就是找不到 XXX (类比 Java 里面的 ClassNotFound)
  3. 先看 rake 报错的地方是在干啥。源代码
  4. 怀疑是不是 Rails 版本问题 - 找不到的这个 MethodWrapper 属于 Deprecation 也就是说,这是一个旧的,(即将) 废弃的模块。那么如果 Rails 版本太低,这个模块应该还没有列入废弃,如果版本太高,就可能已经被删掉了。
  5. 找到这个 API 从 4.0.2 开始出现,直到 4.2.7 仍保留 APIDock, 辅助证明, 而这个项目用的 Rails 4.0.4 应该不会出问题。而且看调用堆栈,确实是存在这个文件。排除
  6. 逐步倒推,怀疑可能是 backports 的问题……

我才不会告诉你,github 上搜 "sales_refresh_app" 会找到一个 (疑似同事的) 小伙伴,你可以找他问问看呢

需要 登录 后方可回复, 如果你还没有账号请 注册新账号