在Ruby on Rails应用程序中更新Puma后,开发服务器无法正常工作

时间:2019-12-17 05:46:30

标签: ruby-on-rails ruby server puma codeanywhere

首先,我将在编程方面让您知道我是一个新手,因此,如果解决方案简单明了,我深表歉意。

我在“ Codeanywhere”上有一个Ruby on Rails应用程序,它是一个基于云的在线IDE,我正在使用Puma来查看开发中的服务器。通常,就像输入“ Rails s”然后单击“预览”按钮以查看开发中的我的应用程序一样简单。

但是,在执行“捆绑更新”后,此操作不再起作用。我输入“ Rails s”,它说服务器已经启动,但是当我单击“预览”按钮时,它说它无法连接并且没有服务器在运行。我已经缩小了范围,导致此问题的“更新”是Rails gem本身的更新,或者更可能是Puma gem的更新,Puma gem是控制此功能的宝石。

我已经尝试过“ rails s --binding = 0.0.0.0”,但是它也没有起作用,似乎只是破坏它的更新,但是我需要更新,因为它是一个安全漏洞。如果我回滚更新,则可以正常工作,但我需要更新的gem。

更新前的版本:5.2.1 Puma更新之前的版本:3.11

更新后的Rails版本:5.2.4 Puma更新后的版本:3.12.2

Sail的输出为:

=> Booting Puma
=> Rails 5.2.4 application starting in development
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.12.2 (ruby 2.5.1-p57), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop
^C- Gracefully stop

一些见识将不胜感激。

1 个答案:

答案 0 :(得分:1)

我也是在更新到Puma 3.12.2之后击中此键的(如果有人关心,请设置第6栏)。

回顾lib/puma/dsl.rb,我发现了两种更改Rails应用的config/puma.rb以指定0.0.0.0的方法。

两者

set_default_host '0.0.0.0'
port        ENV.fetch("PORT") { 3000 }

port        ENV.fetch("PORT") { 3000 }, '0.0.0.0'

使其打印

[...]
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop
[...]

在启动时为我工作/相应收听。