Ruby on rails 4 在本地使用Foreman和Rails 4以及调试侦听器时,服务器没有响应

Ruby on rails 4 在本地使用Foreman和Rails 4以及调试侦听器时,服务器没有响应,ruby-on-rails-4,foreman,Ruby On Rails 4,Foreman,我想使用Foreman进行本地开发,但我也希望能够调试我的代码。为了实现这一点,我使用了以下初始值设定项: if Rails.env.development? require 'debugger' Debugger.wait_connection = true def find_available_port server = TCPServer.new(nil, 0) server.addr[1] ensure server.close if serve

我想使用Foreman进行本地开发,但我也希望能够调试我的代码。为了实现这一点,我使用了以下初始值设定项:

if Rails.env.development?
  require 'debugger'
  Debugger.wait_connection = true

  def find_available_port
    server = TCPServer.new(nil, 0)
    server.addr[1]
  ensure
    server.close if server
  end

  port = find_available_port
  puts "Remote debugger on port #{port}"
  Debugger.start_remote(nil, port)
end
如此处所建议的:。但是,当我启动foreman时,浏览器似乎无法在端口5000上找到任何内容:

$ foreman start
09:48:18 web.1  | started with pid 25337
09:48:23 web.1  | => Booting Thin
09:48:23 web.1  | => Rails 4.0.0 application starting in development on http://0.0.0.0:5000
09:48:23 web.1  | => Run `rails server -h` for more startup options
09:48:23 web.1  | => Ctrl-C to shutdown server
09:48:23 web.1  | Remote debugger on port 57466
如果我转到0.0.0.0:5000,我会看到:


=>哎呀!Google Chrome无法连接到0.0.0.0:5000这是一个不太理想的解决方案,但是

可以与Foreman一起使用调试器,而不使用任何初始值设定项。只需像平常一样在代码中插入调试器语句,就会看到执行将停止

终端窗口将正常打印最后几行执行,如下所示:

11:23:57 web.1  |   Rendered editor/memberships/_memberships.html.haml (76.6ms)
11:23:57 web.1  |   Rendered editor/memberships/_memberships.html.haml (0.2ms)
11:23:57 web.1  | /rails/yourapp/yourapp-code/app/views/editor/memberships/_form.html.haml:2
11:23:57 web.1  | = simple_form_for membership, url: membership.path(:create_or_update) do |f|
11:23:57 web.1  | [-3, 6] in /rails/yourapp/yourapp-code/app/views/editor/memberships/_form.html.haml
11:23:57 web.1  |    1  - debugger
11:23:57 web.1  | => 2  = simple_form_for membership, url: membership.path(:create_or_update) do |f|
11:23:57 web.1  |    3    = f.fields_for :member do |u_f|
11:23:57 web.1  |    4      = u_f.input :email, placeholder: "Enter their email address", label: 'Invite a new administrator'
11:23:57 web.1  |    5    = f.submit 'Add admin', class: 'btn btn-sm btn-success'    
11:23:57 web.1  | (rdb:1) membership
11:23:57 web.1  | #<MembershipDecorator:0x007fb03fee1168 @object=#<Membership id: nil, org_id: 1, member_id: nil, role: "basic", active: true, created_at: nil, updated_at: nil>, @context={}>
11:24:02 web.1  | (rdb:1) membership
11:24:02 web.1  | #<MembershipDecorator:0x007fb03fee1168 @object=#<Membership id: nil, org_id: 1, member_id: nil, role: "basic", active: true, created_at: nil, updated_at: nil>, @context={}>
即使没有提示,调试器仍然已启动 此时并没有提示,若您键入任何内容,它不会出现在屏幕上。但是,当您按return键时,它将被执行,并且输出将显示在终端中


所以,关键是调试器已经启动,您可以使用它并查看其输出,但无法查看您正在键入的内容。我不知道如何修复此问题,但至少您可以继续调试

同样的问题,有消息吗?@woohou没什么不幸的。我只是在附近工作it@woohoou-刚刚添加了一个部分解决此问题的答案