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/

Вот и все.

надеюсь, это поможет

Другие вопросы по тегам