gpt4 book ai didi

ruby - 迁移到 rubinius

转载 作者:太空宇宙 更新时间:2023-11-03 16:03:09 28 4
gpt4 key购买 nike

我正在尝试将我的项目从 mri 迁移到 rubinius 以获得并发优势。

我已经启动了服务器并打开了第一个页面,然后出现了错误:

Puma caught this error: undefined method `=~' for Pathname (NameError)
kernel/common/module.rb:212:in `instance_method'
kernel/common/module.rb:354:in `undef_method'
kernel/bootstrap/array.rb:66:in `each'
kernel/common/module.rb:352:in `undef_method'
...

我的 gem 文件

source 'https://rubygems.org'

ruby '2.1.0', :engine => "rbx", engine_version: '2.2.1'

gem "rubysl" # Ruby Standard Library meta-gem for rubinius

# Server requirements

gem 'puma'

...

这里可能有什么问题?

更新:full stack trace

最佳答案

我检查了您的堆栈跟踪并查看了 Rubinius 源代码。违规行是:

 class Pathname
undef =~ # THIS IS IT
end

#=~Object 上的实例方法,所以通常 undef =~ 应该适用于任何类...除非 它已经在 ObjectPathname 上被 undef 了。

我想知道这是否会发生,因为您的 Gemfile 中有 rubysl gem。我不知道 Rubinius,但据我所知,它似乎并不需要您专门包含这个 gem。或者也许它在过去的版本中有,但现在没有。如果标准库被加载两次,那就可以解释为什么 undef =~ 第二次失败了。

如果这没有帮助,我建议您尝试暂时移除尽可能多的 gem,看看问题是否消失。如果是这样,请将它们一一添加回去,直到找到导致问题的原因。

关于ruby - 迁移到 rubinius,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20248350/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com