首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >冰糕错误-超类UserBase of UserEmbeds不是派生自类

冰糕错误-超类UserBase of UserEmbeds不是派生自类
EN

Stack Overflow用户
提问于 2022-09-06 17:55:31
回答 1查看 55关注 0票数 2

对于ruby中的严格类型,我一直很有兴趣采用sorbet,但是在我现有的代码库上安装它时,我碰到了一个我不明白的墙

运行sbc tc时会出现以下错误

代码语言:javascript
复制
entities/user_entities.rb:25: The super class CrewManagement::Entities::UserBase of CrewManagement::Entities::UserEmbeds does not derive from Class https://srb.help/5067
    25 |    class UserEmbeds < UserBase
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    entities/user_entities.rb:6: CrewManagement::Entities::UserBase defined here
     6 |    class UserBase < CrewManagement::Entities::Mongoid
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

误差5067下的冰糕文档

代码语言:javascript
复制
A class’s superclass (the Parent in class Child < Parent) must be statically resolvable to a class, not a module.

据我所知,错误是说我的class不是从class继承的,而是从module继承的,但是当我查看所有东西时,我非常肯定所有的东西都是class,而那个冰糕可能会造成错误的结果。

实体/用户实体.

代码语言:javascript
复制
module CrewManagement
  module Entities
    ## inherits from a different file
    class UserBase < CrewManagement::Entities::Mongoid
      expose :username
      ## ...
    end
    
    ## inherits from declaration above
    class UserEmbeds < UserBase
      expose :_embedded do |record, opt|
        embeds = {}
        ## ...
        embeds
      end
    end
  end
end

config/entities.rb

代码语言:javascript
复制
module CrewManagement
  module Entities
    ## inherits from grape-entity gem
    class Mongoid < Grape::Entity
      format_with(:mongo_id, &:to_s)
      with_options(format_with: :mongo_id) do
        expose :_id, as: :id
      end
      expose :created_at
      expose :updated_at
    end
  end
end

我认为它标志着葡萄实体rubygem,而不是我的代码库,但是当我查看rubygems源代码时,我发现Grape::Entity是一个类实体/实体b

这个错误是我可以通过RBI文件声明来解决的吗?

运行时详细信息:

  • OS - MacOS (蒙特利) 12.5.1 (2.4 GHz 8-英特尔核心i9)
  • 红宝石- 3.0.0p0 (2020-12-25修订版95aff21468) x86_64-darwin21 21
  • rvm - 1.29.12
  • 创业板-静态和运行时- 0.5.10346
  • 宝石木薯- 0.10.0
  • 宝石葡萄-实体- 0.10.2
EN

回答 1

Stack Overflow用户

发布于 2022-09-06 18:57:59

我敢打赌您的todo.rbi文件中有一个声明可以读取module Grape::Entity; end

如果tapioca仍然无法“发现”葡萄的正确类型,则需要手动修改todo.rbi。

编辑:我看你已经有木薯了。如果RBI没有正确解决,您可能需要手动添加它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73626061

复制
相关文章

相似问题

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