factory_girl linter 由于 ActionView::Template::Error 而失败

factory_girl linter failing because of ActionView::Template::Error

我正在解决将应用程序从 rails 4.1 更新到 rails 5 的错误。当我尝试 运行 我的测试 factory_girl linter 抱怨一些工厂无效:

/Users/stephen/.rvm/gems/ruby-2.3.1@ssa/gems/factory_girl-4.7.0/lib/factory_girl/linter.rb:13:in `lint!': The following factories are invalid: (FactoryGirl::InvalidFactoryError)

* call_log - Undefined variable: "$green". (ActionView::Template::Error)
* sms_log - Undefined variable: "$green". (ActionView::Template::Error)

等等

这就是工厂女孩真正给我的堆栈跟踪信息。它告诉我调用 linter 的位置,仅此而已。没有迹象表明某些事情可能会在视图中发生。我有办法确定这一点吗?似乎这将很难调试 fi 我不知道它来自哪里。

坐在你旁边进行调查后,我要大胆地说,该模型有一个发送电子邮件的回调,它触发了整个 ActionView 渲染,这显然有一些错误。

更多证据表明回调是糟糕的——尤其是发送电子邮件的回调。