首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有错误位的空气制动器中未定义的方法`method=

带有错误位的空气制动器中未定义的方法`method=
EN

Stack Overflow用户
提问于 2013-04-11 18:58:29
回答 1查看 336关注 0票数 1

当我执行rake airbrake:test时,我在生产时得到了这个异常。Errbit应用程序托管在heroku上,不会从生产环境接收任何消息。问题出在哪里?

空气制动器v3.1.8

来自github的Errbit v- last

代码语言:javascript
复制
undefined method `method=' for #<BacktraceLine:0x00000005a0d160>

app/models/backtrace.rb:27:in `new'
app/models/backtrace.rb:27:in `block in raw='
app/models/backtrace.rb:26:in `each'
app/models/backtrace.rb:26:in `raw='
app/models/backtrace.rb:18:in `new'
app/models/backtrace.rb:18:in `find_or_create'
app/models/error_report.rb:33:in `backtrace'
app/models/error_report.rb:40:in `generate_notice!'
lib/overrides/hoptoad_notifier/hoptoad_notifier.rb:18:in `send_notice'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-11 23:26:12

这是由3.1.8版本后的空气制动器的变化引起的错误位中的known issue

fix在7天前(在撰写本文时)提交给Errbit的unnamed branch

从未命名的分支重新安装Errbit,或手动实施更改。或者等到修复程序到达Errbit主干,然后根据Errbit自述文件中的指令进行升级。

或者,您可以降级到较旧版本的Airbrake。版本3.1.8 does not contain了突破性的变化。我通过在我的机器上安装Airbrake 3.1.8并检查文件来验证这一点。将此代码放入Gemfile中,然后运行bundle install

代码语言:javascript
复制
gem "airbrake", "3.1.8"

编辑:

由于您使用的是兼容版本的Airbrake,请查看Errbit。

在当前的Errbit主干中,BacktraceLine#method= (source)是由Mongoid提供的接口。未定义的方法错误意味着Mongoid在运行时没有提供该方法。在测试环境中,您可能会遇到Mongoid的初始化或配置问题。

编辑2:

事实证明,这个错误是由于Errbit在没有安装Mongoid的情况下安装而导致的,这是Errbit所需要的。

Errbit用钩子覆盖了空气制动通知器gem,因此使用空气制动会无意中调用Errbit。没有了Mongoid,Errbit就会失败。

有两种解决方案可供选择:

从application.中完全删除

或者..。

  • 完全实现Errbit并使用它。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15946995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档