本文介绍了Rails Byebug 没有停止应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用 byebug 来调试我的应用程序,但该应用程序永远不会停止,尽管我已经将 byebug 放入我的代码中.这是我的 Gemfile.

I want to use byebug to debug my application but the app is never stop although I already put byebug inside my code. Here is my Gemfile.

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console

  gem 'byebug', '~> 5.0.0'

  # Access an IRB console on exception pages or by using <%= console %> in views
  gem 'web-console', '~> 2.0'

end

我将 byebug 放在我的一个控制器中.

I put byebug in one of my controller.

def edit
  byebug
  present Ingredient::Update
end

我已经在我的 development.rb 中本地提出了所有请求.我已经重启了几次服务器.

I already made all my request local in my development.rb. I already restart the server a couple times.

config.consider_all_requests_local       = true

以下是示例堆栈跟踪,byebug 仅打印第一个跟踪,然后应用继续执行下一行.

Here is the example stack trace that byebug only print the first trace and then the app keeps going on executing the next line.

web_1 | [43, 52] in /recipe/app/controllers/ingredients_controller.rb
web_1 |    43:   def update
web_1 |    44:     run Ingredient::Update do |op|
web_1 |    45:       return redirect_to op.model
web_1 |    46:     end
web_1 |    47:     byebug
web_1 | => 48:     render action: :edit
web_1 |    49:   end
web_1 |    50:
web_1 |    51:   # DELETE /ingredients/1
web_1 |    52:   # DELETE /ingredients/1.json
web_1 | (byebug)   Rendered ingredients/edit.haml within layouts/application (264.1ms)
web_1 |   Rendered layouts/_navigation.haml (45.0ms)
web_1 | Completed 200 OK in 2827ms (Views: 2764.0ms | ActiveRecord: 3.9ms)
web_1 |
web_1 |
web_1 | Started GET "/assets/application.self-1ca8529ef221ef9dba25e835f258c4e62f2f49bce400273a67e63d7d73be28ba.css?body=1" for 192.168.59.3 at 2015-07-28 06:46:00 +0000

有什么想法吗?更新我在 Rails 应用中使用了 docker-compose 和 docker.

Any idea?UpdateI use docker-compose and docker inside my Rails app.

推荐答案

docker-composebyebug 结合使用时,需要添加这个才能使其正常工作.在这篇博文

When using docker-compose in combination with byebug this needs to be added to make it work properly. Found in this blog post

将此添加到 docker-compose.yml

Add this to docker-compose.yml

web:
  ...
  stdin_open: true
  tty: true

然后在 deamonized 模式下运行 docker-compose 并使用 docker 附加到 web 容器:

Then run docker-compose in deamonized mode and attach to the web container with docker:

docker-compose up -d
docker attach myappname_web_1

这篇关于Rails Byebug 没有停止应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-16 12:05