Rails airbrake未定义方法

7
我正在运行我的Rails应用程序,昨天它一切正常,但今天当我运行rails server时,它给了我这个错误。虽然我的airbrake也没有任何错误。
[airbrake.rb]
Airbrake.configure do |config|
  config.api_key = APP_CONFIG.airbrake.api_key
  config.host    = APP_CONFIG.airbrake.host
  config.port    = APP_CONFIG.airbrake.port
  config.secure  = config.port == 443
end


undefined method `api_key=' for #<Airbrake::Config:0x000000073fa1e0> (NoMethodError)
  from /home/techbirds/.rvm/gems/ruby-2.2.3/gems/airbrake-ruby-1.0.0/lib/airbrake-ruby.rb:98:in

configure' from /home/techbirds/icare-master/config/initializers/airbrake.rb:1:in ' from /home/techbirds/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:268:in load' from /home/techbirds/.rvm/gems/ruby-2.2.3/gems/activesupport-4.2.5/lib/active_support/dependencies.rb:268:inblock in load' from /home/techbirds/.rvm/gems/ruby-2.2.3/gems/activesupport-

3个回答

17

看起来您不小心升级到了 新的 v5 Airbrake gem。您可以选择:

  1. 按照 迁移指南 从 airbrake v4 迁移到 v5,或者
  2. 在 gemfile 中将 airbrake 锁定为 v4,例如:gem 'airbrake', '~> 4.3.4'

2

你有查看 github 仓库上的迁移指南吗?

旧选项 | 新选项  | 是否必填?
api_key    | project_key | 是
.......    | ........... | ........

无法工作,出现相同的错误 undefined method `project_key' for #SimpleConfig::Config:0x00000007d8c4b0 (NoMethodError) - aniket tiwari
SimpleConfig 类/模块与 Airbrake 没有任何关系。 - kyrylo

0

看起来你没有像这样在 Gemfile 文件中锁定 Airbrake 的主版本:

gem 'airbrake', '~> 4.3'

第五个版本引入了API更改,这是您遇到的问题。我建议使用以上版本锁定进行快速修复,然后按照指南中描述的进行迁移。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接