Rails: NameError: uninitialized constant Bootsnap::CompileCache::ISeq

Rails: NameError: uninitialized constant Bootsnap::CompileCache::ISeq

我在 Rails 上有一个 Ruby 应用程序已经 运行 一段时间了。今天,我给它添加了一些功能,然后在开发环境中启动了应用程序,它启动良好,没有错误。但是当我尝试在我的浏览器上访问该应用程序时,我 运行 出现了这个错误:

NameError: uninitialized constant Bootsnap::CompileCache::ISeq>)

我已经尝试将 Bootsnap gem 更新到最新版本:

gem 'bootsnap', '>= 1.4.6'

删除了 Gemfile.lock 文件

rm -rf Gemfile.lock

然后运行 bundle update 命令更新gems

bundle update

但还没有成功,因为我仍在 运行遇到同样的问题。任何形式的帮助将不胜感激。谢谢。

我终于想通了。我没有必须更新Bootsnapgem。

问题是你的application目录下的Bootsnap gem tmp目录对当前用户是不可写的,也就是当前用户没有写权限应用程序目录中的 Bootsnap gem tmp 目录。

我是这样解决的:

只需删除具有超级用户权限的Bootsnap gem tmp目录中的application目录:

sudo rm -rf tmp/cache/bootsnap-load-path-cache
sudo rm -rf tmp/cache/bootsnap-compile-cache

不要再重新创建tmp目录,浪费精力

只需启动您的应用程序tmp 目录将再次自动创建:

rails s

如果在此之后您遇到此错误:

Permission denied @ apply2files

然后按照这里的解决方法:Rails: “Permission denied - /tmp/cache/assets/development/sprockets/

就这些了。

希望对您有所帮助