Rails: NameError: неинициализированная константа Bootsnap::CompileCache::ISeq
У меня есть приложение Ruby on Rails, которое уже некоторое время работает нормально. Сегодня я добавил к нему несколько функций, а затем запустил приложение в среде разработки, которая запустилась без ошибок. Но когда я пытаюсь получить доступ к приложению в моем браузере, я сталкиваюсь с этой ошибкой:
NameError: неинициализированная константа Bootsnap::CompileCache::ISeq>)
Я пробовал обновить гем Bootsnap до последней версии:
gem 'bootsnap', '>= 1.4.6'
Удалил Gemfile.lock
файл
rm -rf Gemfile.lock
А затем запустил команду обновления пакета, чтобы обновить драгоценные камни
bundle update
Но пока безуспешно, так как я все еще сталкиваюсь с той же проблемой. Мы будем очень благодарны за любую помощь. Спасибо.
1 ответ
Я наконец-то понял. Мне не пришлось обновлять гем Bootsnap.
Проблема в том, что самоцвет Bootsnaptmp
каталог в каталоге вашего приложения не доступен для записи для текущего пользователя, то есть текущий пользователь не имеет разрешения на запись в гем Bootsnaptmp
в каталоге вашего приложения.
Вот как я это решил:
Просто удалите камень Bootsnaptmp
каталог в каталоге вашего приложения с правами суперпользователя:
sudo rm -rf tmp/cache/bootsnap-load-path-cache
sudo rm -rf tmp/cache/bootsnap-compile-cache
Не воссоздайте tmp
каталог снова, это пустая трата усилий
Просто запустите свое приложение иtmp
каталог будет снова создан автоматически:
rails s
Если после этого вы столкнетесь с такой ошибкой:
В доступе отказано @ apply2files
Затем следуйте приведенному здесь решению: Rails: "Permission denied - /tmp/cache/assets/development/sprockets/
Вот и все.
надеюсь, это поможет