Rails: NameError: неинициализированная константа Bootsnap :: CompileCache :: ISeq - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть Ruby приложение на Rails, которое работает в течение некоторого времени. Сегодня я добавил к нему несколько функций, а затем запустил приложение в среде разработки, которая нормально работала без ошибок. Но когда я пытаюсь получить доступ к приложению в своем браузере, я сталкиваюсь с этой ошибкой:

NameError: неинициализированная константа Bootsnap :: CompileCache :: ISeq>)

I попытался обновить самоцвет Bootsnap до последней версии:

gem 'bootsnap', '>= 1.4.6'

Удалил Gemfile.lock файл

rm -rf Gemfile.lock

И затем запустил команду обновления комплекта для обновления самоцветов

bundle update

Но успеха пока нет, так как я все еще сталкиваюсь с той же проблемой. Любая форма помощи будет высоко оценена. Спасибо.

1 Ответ

0 голосов
/ 16 апреля 2020

Я наконец понял это. Я не должен обновить Bootsnap gem.

Проблема в том, что каталог 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

Если после этого вы столкнетесь с этой ошибкой:

В доступе отказано @ apply2files

Затем следуйте решению здесь: Rails: «Отказано в доступе - / tmp / cache / assets / development / sprockets /

Вот и все.

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

...