Rails Console зависает при ручном удалении / уничтожении

ruby-on-rails ruby server web-development-server

503 просмотра

2 ответа

620 Репутация автора

Это случалось со мной много раз, и я надеюсь, что смогу найти ответ здесь.

Иногда при работе с консолью Rails и выполнении действия #update или #destroy над объектом моя консоль просто зависает после публикации в журнале сообщения «BEGIN». В настоящее время у меня есть одно открытое, простое уничтожение, которое сидело там десять минут.

то есть:

my_object.find(permitted_params[:thing][:id]).destroy

CTRL + C на моем mac не убивает его и просто отображает:

^C^C^C^C^C^C^C^C^C^C

Затем, когда я наконец убью вкладку и перезапущу сервер, я получу:

A server is already running. Check /path/to/app/tmp/pids/server.pid.

Затем, когда я очищаюсь server.pidи пытаюсь перезапустить сервер, я получаю:

/Users/nickschwaderer/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/socket.rb:206:in `bind': Address already in use - bind(2) for 127.0.0.1:3000 (Errno::EADDRINUSE)

В этот момент я запускаю lsof -wni tcp:3000, kill -9 #whatever_my_pid_wasчтобы, наконец, все исправить, чтобы снова запустить сервер.

Что, черт возьми, здесь происходит?

Автор: Nick Schwaderer Источник Размещён: 18.07.2016 01:26

Ответы (2)


1 плюс

37 Репутация автора

Это случилось со мной недавно, и я признаюсь, что мне стыдно за причину, когда я узнал.

Убедитесь, что у вас нет остановки кода где-нибудь. Был одинокий binding.pry, который по какой-то причине срабатывал, даже когда я пытался удалить свой объект даже из консоли.

Автор: Hyruu Размещён: 20.10.2016 04:45

1 плюс

5634 Репутация автора

Это случилось со мной, но с User.delete (1234). В конце я просто перезапустил свою машину, перезапустил сервер базы данных, и все заработало.

Автор: Obromios Размещён: 12.06.2018 12:03
Вопросы из категории :
32x32