Pro*_*ton 1 ruby ruby-on-rails bootsnap
我有一个运行良好的 Ruby on Rails 应用程序。今天,我给它添加了一些功能,然后在开发环境中启动了应用程序,启动良好,没有错误。但是当我尝试在浏览器上访问该应用程序时,我遇到了以下错误:
NameError: 未初始化的常量 Bootsnap::CompileCache::ISeq>)
我尝试将 Bootsnap gem 更新到最新版本:
gem 'bootsnap', '>= 1.4.6'
Run Code Online (Sandbox Code Playgroud)
删除了Gemfile.lock文件
rm -rf Gemfile.lock
Run Code Online (Sandbox Code Playgroud)
然后运行 bundle update 命令来更新 gems
bundle update
Run Code Online (Sandbox Code Playgroud)
但还没有成功,因为我仍然遇到同样的问题。任何形式的帮助将不胜感激。谢谢。
我终于弄明白了。我不必更新Bootsnap gem。
问题是你的应用目录下的Bootsnap gemtmp目录对当前用户是不可写的,即当前用户没有权限写入你的应用目录下的Bootsnap gemtmp目录。
这是我解决它的方法:
只需使用超级用户权限删除应用程序目录中的Bootsnap gemtmp目录:
sudo rm -rf tmp/cache/bootsnap-load-path-cache
sudo rm -rf tmp/cache/bootsnap-compile-cache
Run Code Online (Sandbox Code Playgroud)
不要重新创建tmp目录,这是浪费精力
只需启动您的应用程序,tmp目录将再次自动创建:
rails s
Run Code Online (Sandbox Code Playgroud)
如果在此之后您遇到此错误:
权限被拒绝@ apply2files
然后按照这里的解决方案:Rails:“Permission denied - /tmp/cache/assets/development/sprockets/
就这样。
我希望这有帮助