Ruby on rails 4 在本地使用Foreman和Rails 4以及调试侦听器时,服务器没有响应
我想使用Foreman进行本地开发,但我也希望能够调试我的代码。为了实现这一点,我使用了以下初始值设定项: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
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-刚刚添加了一个部分解决此问题的答案