【发布时间】:2018-01-09 19:02:35
【问题描述】:
在 Heroku 上保存记录或对我的数据库发出 POST 或 DELETE 请求时出现错误。这是我第一次在 heroku 上部署 rails 应用程序,我不知道是什么导致了这个问题。我也在网上搜索并阅读了日志,但仍然没有任何原因。奇怪的是记录被保存了,但它显示了 500 条消息。
删除方法:
def destroy
if @contact.destroy
flash[:success] = "Successfully deleted contact"
redirect_to root_path
else
flash[:warning] = "Problem encountered while deleting the current contact."
end
end
日志:
2017-08-02T12:29:20.368457+00:00 应用 [web.1]: D, [2017-08-02T12:29:20.368375 #4] 调试——: [486f4051-00b0-4d23-8d56-6de722606384] (1.5ms) 开始 2017-08-02T12:29:20.371200+00:00 应用 [web.1]: D, [2017-08-02T12:29:20.371130 #4] 调试 -- : [486f4051-00b0-4d23-8d56-6de722606384] SQL (1.9ms) 删除 "联系人" WHERE "联系人"."id" = $1 [["id", 2]] 2017-08-02T12:29:20.374283+00:00 应用 [web.1]: D, [2017-08-02T12:29:20.374212 #4] 调试——: [486f4051-00b0-4d23-8d56-6de722606384] (2.8ms) 提交 2017-08-02T12:29:20.376028+00:00 应用 [web.1]: D, [2017-08-02T12:29:20.375962 #4] 调试——: [486f4051-00b0-4d23-8d56-6de722606384] 触点移除 (1.4ms) {"id":2,"exception":["Faraday::ConnectionFailed","打开 TCP 失败 连接到 localhost:9200(连接被拒绝 - connect(2) for \"localhost\" 端口 9200)"],"exception_object":"打开 TCP 失败 连接到 localhost:9200(连接被拒绝 - connect(2) for \"localhost\" 端口 9200)"} 2017-08-02T12:29:20.376531+00:00 应用程序[web.1]:我,[2017-08-02T12:29:20.376443 #4] 信息——: [486f4051-00b0-4d23-8d56-6de722606384] 完成500内部服务器 20 毫秒内的错误(Searchkick:1.4 毫秒 | ActiveRecord:10.5 毫秒) 2017-08-02T12:29:20.377484+00:00 应用 [web.1]: F, [2017-08-02T12:29:20.377420 #4] 致命——: [486f4051-00b0-4d23-8d56-6de722606384] 2017-08-02T12:29:20.377573+00:00 应用 [web.1]: F, [2017-08-02T12:29:20.377489 #4] 致命——: [486f4051-00b0-4d23-8d56-6de722606384] 法拉第::ConnectionFailed (无法打开到 localhost:9200 的 TCP 连接(连接被拒绝 - 连接(2)“本地主机”端口 9200)): 2017-08-02T12:29:20.377644+00:00 应用 [web.1]: F, [2017-08-02T12:29:20.377572 #4] 致命——: [486f4051-00b0-4d23-8d56-6de722606384] 2017-08-02T12:29:20.377714+00:00 应用 [web.1]: F, [2017-08-02T12:29:10.377644 #4] 致命——: [486f4051-00b0-4d23-8d56-6de7226w06384] app/controllers/user/contacts_controller.rb:27:in ``destroy' 2017-08-02T12:29:29.530605+00:00 heroku[路由器]: at=info method=GET path="/user/contacts" 主机=hhjjh.herokuapp.com request_id=62545ba4-c37b-4167-bcf8-24a403638sd0 fwd="194.201.21.36" dyno=web.1 连接=1ms 服务=17ms 状态=200 字节=7664 协议=https
【问题讨论】:
-
似乎弹性搜索服务器没有启动。
-
您确定您的连接处理正确吗? “ 无法打开到 localhost:9200 的 TCP 连接(连接被拒绝 - “localhost” 端口 9200 的连接(2))“ 您正在部署到 heroku,它正在尝试与 localhost 连接?
-
另外你确定你的databse.yml 是正确的吗?你必须有这样的东西:生产:
-
@gabriel 记录被保存,但没有进行正确的重定向。如果没有,它还会保存吗?
-
仅供参考,您可以先执行简单的
Record.find(id).destroy,然后再执行raise "Stop",运行此代码仍会破坏记录(除非在使用raise的数据库事务中)但会在@987654325 上失败@ 线。您的问题与destroy调用无关(因为它是成功的),它在其他地方。
标签: ruby-on-rails heroku