RuntimeError:无法修改冻结的数组(Rollbar,Rails 5.1升级)

Pie*_*eau 1 ruby-on-rails rollbar

升级到Rails 5后无法使用rspec和rollbar。

  1. 创建一个Rails 4应用
  2. 升级gemfile以使用Rails 5
  3. 尝试添加滚动条gem / support

标准config / environment.rb:

 # Load the Rails application.
require_relative 'application'

# Initialize the Rails application.
Rails.application.initialize!
Run Code Online (Sandbox Code Playgroud)

运行rspec时出错:

An error occurred while loading {path to specific spec file}
Failure/Error: require File.expand_path('../../config/environment', __FILE__)

RuntimeError:
  can't modify frozen Array
# ./config/environment.rb:6:in `<top (required)>'
# ./spec/rails_helper.rb:5:in `<top (required)>'
...
No examples found.
Run Code Online (Sandbox Code Playgroud)

Max*_*ini 7

在大多数情况下,该错误是其他事情的麻烦。

遇到此can't modify frozen Array错误时,请不要对反复出现的错误消息感到不知所措,而应检查运行规格时出现的第一个错误。

例如:

失败/错误:验证:uniqueness,如果:'should_be_unique?'

ArgumentError:不支持在:if和:un中传递要评估的字符串,除非有条件选项。传递用于实例方法的符号,或者传递lambda,proc或block。


小智 6

只是在马克西莫·穆西尼的答案之上添加一个提示。

如果有人在终端上找不到第一个错误,请尝试在一个文件上运行 RSpec,即rspec spec/models/user_spec.rb

您应该能够找到根本情况。

就我而言,我尚未更新模型.env所需的局部变量User

希望能帮助到你