首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby 3超额承诺&心理问题

Ruby 3超额承诺&心理问题
EN

Stack Overflow用户
提问于 2022-05-23 09:39:52
回答 1查看 302关注 0票数 0

我正在将Rails项目从2.6.6升级到Ruby3.1.2。最初我遇到了this problem,但是通过在Gemfile中添加gem 'psych', '< 4'来修正它。我应该注意到,有一个答案提到将Ruby3.0.3降级,但这并不能解决我的问题。

在添加了这些之后,这个项目在精神病学方面运作得很好。不幸的是,当尝试提交/推送时,overcommit钩子返回此错误:

/.rbenv/versions/3.1.2/lib/ruby/3.1.0/bundler/runtime.rb:309:in 'check_for_activated_spec!': You have already activated psych 4.0.4, but your Gemfile requires psych 3.3.2. Prepending 'bundle exec' to your command may solve this. (Gem::LoadError)

我还尝试更改overcommit的版本,并得到了以下错误:Since "psych" is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports psych as a default gem.

是否有任何方法来修复此问题,或者某个特定的过度提交版本可以绕过此错误?

EN

回答 1

Stack Overflow用户

发布于 2022-06-22 19:10:55

也遇到过类似的问题。所以,张贴在这里,以防万一会对某人有所帮助。

使用Ruby3时,您需要显式地将psych ~>3.0添加到Gemfile中,因为它不完全理解如何处理别名,因此随Ruby3捆绑在一起的默认版本将产生错误。

如果您仍然希望使用与Ruby3捆绑在一起的默认心理库,您可以加载类似于:YAML.load_file(file_path, aliases: true)的YAML文件。

在我的例子中,我的依赖项加载了YAML文件,所以我决定降级心理版本,而不是用aliases: true加载YAML文件。

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

https://stackoverflow.com/questions/72346369

复制
相关文章

相似问题

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