Rails控制台冻结手动删除/销毁操作

时间:2016-07-18 13:26:48

标签: ruby-on-rails ruby server web-development-server

这种情况多次发生在我身上,我希望我能在这里找到答案。

有时在使用Rails控制台并对对象执行#update或#destroy操作时,我的控制台只会在发布" BEGIN"之后冻结。在日志中。我现在有一个开放的,一个简单的破坏,已经在那里坐了十分钟。

即:

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

我的mac上的CTRL + C不会杀死它,只是渲染:

^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,最后设置所有内容以重新运行服务器。

山姆在这里发生了什么事?

2 个答案:

答案 0 :(得分:1)

最近发生在我身上,我承认当我发现原因时,我感到非常惭愧。

确保您没有代码停止某处。有一个单独的binding.pry因为某种原因被解雇,即使我试图从控制台移除我的对象。

答案 1 :(得分:1)

这发生在我身上,但是使用了User.delete(1234)。最后,我刚刚重启了我的机器,重新启动了数据库服务器,一切正常。