冰糕-无法解析常数

时间:2019-06-28 17:24:24

标签: ruby-on-rails ruby sorbet

运行srb initsrb tc并传入一个新的Rails项目后,我安装了RSpec,srb tc现在有很多抱怨,包括:

spec/spec_helper.rb:16: Unable to resolve constant RSpec https://srb.help/5002
    16 |RSpec.configure do |config|

如何解决此错误?

2 个答案:

答案 0 :(得分:0)

这是因为默认情况下,Sorbet不了解anything defined in a gem。它需要为gem生成一个RBI文件,以了解gem的常量和API。

在安装新的gem时,您必须更新RBI文件,这很容易

srb rbi update

注意:如果No such file or directory @ rb_sysopen - update出现此错误,请在本地gem中将this line更改为使用STDIN.gets而不是Kernel.gets。截至此答案,至少有couple PRs地址为the issue

答案 1 :(得分:0)

我怀疑srb init不能正确完成。我在sorbet/gems/rspec-core.rbi中定义了RSpec模块,并在其他rspec gems rbi中定义了

是否有sorbet/gems文件夹? srb rbi gems对您有用吗?如果没有,请查看Slack频道并在那里询问。

编辑:问题在于最初的srb init之后安装了gem。对于这些,您应该运行srb rbi gems为添加的宝石生成一个RBI文件。