Подтвердить что ты не робот

Рельсы Spring разрушающие генераторы

Я настраиваю свое первое приложение Rails 4.1, которое поставляется с Spring, их новым предварительным загрузчиком. Когда я пытаюсь установить Devise с помощью своего генератора ($ rails generate devise:install), командная строка просто зависает и ничего не генерируется.

Если я удалю Spring из файла gem и повторю попытку, генератор Devise работает.

У кого-нибудь есть понимание?

4b9b3361

Ответ 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