【问题标题】:Ruby on Rails error: superclass mismatch for class StringIO (TypeError)Ruby on Rails 错误:StringIO 类的超类不匹配(TypeError)
【发布时间】:2021-12-29 18:13:38
【问题描述】:

在创建 ruby​​ on rails 项目时出现错误。在命令中,我通过输入rails new club,然后输入bundle 创建了一个新项目。现在,当我尝试通过键入并输入 rails g resource Club name 创建模型和控制器时,我收到此错误:superclass mismatch for class StringIO (TypeError)

gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:
in `require': superclass mismatch for class StringIO (TypeError)

我什至没有一个名为 StringIO 的类,所以我不确定它来自哪里。

  • 红宝石版本:2.6.8
  • 导轨:6.1.4.1

【问题讨论】:

  • 请添加您的 ruby​​ 和 rails 版本并粘贴到堆栈跟踪的相关位中。
  • 我在 ruby​​ 2.7.4 和 rails 6.1.4.1 上更新了我所有的 gem 后也得到了这个。 gems/bootsnap-1.9.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require':StringIO 类的超类不匹配(TypeError)
  • Ruby on rails 版本:2.6.8
  • 我的rails版本是6.1.4.1
  • 评论不是永久性的——请编辑问题。

标签: ruby-on-rails ruby


【解决方案1】:

尝试恢复到较早版本的 StringIO

  gem install stringio -v 0.1.4

  gem uninstall stringio # remove 3.0.0 and 3.0.1

【讨论】:

    【解决方案2】:

    它对我有用。

    我的错误是:应用程序遇到以下错误:StringIO 类的超类不匹配 (TypeError)

    问题是由这个问题引起的 https://www.redmine.org/issues/35435

    它可能会帮助你。我还删除了与#gem 'sdoc' 相关的所有宝石 它看起来像默认情况下 sdoc 在内部调用 gem 'psych',这是 gem 使用 StringIO 并且两者都有不同的版本,您可以检查 GemFile.Lock 中的差异以查看两个版本之间的差异。

    【讨论】:

      【解决方案3】:

      我在更新我的 gem 后开始收到此错误。我尝试卸载 ruby​​ 和我所有的 gem,更新 rvm,但对我来说,解决方案似乎是更新 ruby​​gems。

      gem update --system
      

      【讨论】:

      • 我试过了,但没用
      • 这对我也不起作用:(
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-10
      • 2011-09-06
      • 2013-12-13
      • 2017-11-03
      • 2016-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多