Рельсы Spring разрушающие генераторы
Я настраиваю свое первое приложение Rails 4.1, которое поставляется с Spring, их новым предварительным загрузчиком. Когда я пытаюсь установить Devise с помощью своего генератора ($ rails generate devise:install
), командная строка просто зависает и ничего не генерируется.
Если я удалю Spring из файла gem и повторю попытку, генератор Devise работает.
У кого-нибудь есть понимание?
Ответы
Ответ 1
Проверяйте каталоги некоторых других проектов, над которыми вы работали в то время, есть вероятность, что созданные файлы оказались там.
spring кажется запутанным, когда вы работаете одновременно с несколькими приложениями rails. Вероятно, это вызвало вашу проблему.
spring работает как сервер и сохраняет загруженную среду рельсов. Я думаю, что случается, что если вы работаете с несколькими проектами за раз, то система spring кажется запутанной и использует неправильную среду.
У меня была ситуация, когда я запускал rails g ...
в одном проекте, и файлы получали в другом проекте. Сумасшествие заключалось в том, что я продолжал переименовывать и перемещать эту другую папку, и все же генератор продолжал помещать файлы в эту папку. Как будто spring зафиксировался в inode этой папки.
Попробуйте DISABLE_SPRING=1 rails g devise:install
или ps aux |grep spring
и убейте все процессы, которые вы видите, а затем запустите rails g devise:install
Мы вынимаем spring из Gemfile
, пока это нарушение сохраняется, и в будущем используйте rails new --skip-spring
Если вы хотите продолжать использовать spring, попробуйте выполнить следующие правила.
- Использовать новые оболочки для каждого нового проекта
- Используйте новое имя каталога для каждого нового проекта (если вы выполняете
rails new blog
, работайте над ним, затем mv blog blog.old
и rails new blog
снова, это может не сработать.
- Время от времени продолжайте убивать все серверы spring для обеспечения безопасности (и разумности).
Ответ 2
Вы можете отключить spring для любой команды $ rails
, передав переменную окружения DISABLE_SPRING=1
.
$ DISABLE_SPRING=1 rails generate devise:install
В качестве альтернативы вы можете попробовать $ spring stop
для вращения процессов spring. Выполнение $ rails generate
впоследствии приведет к созданию нового процесса spring, который может решить временную проблему.
Ответ 3
Это старый пост, но я думаю, что мой опыт может помочь кому-то...
рельсы 5.0.1
Я столкнулся с такой же проблемой после того, как я испортил некоторые из созданных файлов (я новичок в рельсах и обучении), и чем я попробовал рельсы уничтожить модель разработки, и я застрял, много пытался и ничего не работал.
Googled, пришел сюда, попытался исключить драгоценные камни spring, и он сработал, снова добавил драгоценные камни spring, и разработка снова застряла во всем.
Я только что закрыл терминал и открыл новый, и он работал.
Ответ 4
Есть такая же проблема для рельсов 5.1.4 для gem респондентов
Я перечислил решения вместе с предыдущими:
- закрыть терминал и открыть новый
- выполнить команду
DISABLE_SPRING=1 bundle exec rails generate responders:install
или экспортировать его как переменную среды
export DISABLE_SPRING=1
- запустить spring процесс для вашего приложения
ps ax | grep spring | grep YOUR_APP_NAME | cut -f1 -d' ' | xargs kill