如何在rails服务器控制台中调试?

时间:2016-04-06 06:08:51

标签: ruby-on-rails

我是ruby on rails的新手,我想通过调试器i rails server console来调试我的rails应用程序。所以请告诉我快捷方式,这样我就可以调试。

4 个答案:

答案 0 :(得分:0)

要在生产中打开rails console,您可以输入:

RAILS_ENV=production bundle exec rails c

或者,如果要在运行时调试代码,可以使用:

pry-remote

答案 1 :(得分:0)

执行此操作的官方方法是使用byebug gem。通过执行

安装它
gem install byebug

之后,您可以在代码中的任何位置添加byebug语句:

class PeopleController < ApplicationController
  def new
    byebug
    @person = Person.new
  end
end

一旦应用程序到达此语句,它就会停止并在您启动服务器进程的shell中显示命令提示符。

有关详细信息,请参阅RoR Debugging Guide

答案 2 :(得分:0)

Rails 4默认包含byebugweb-console。在开发模式中,您只需在代码中的任何位置调用byebug即可停止执行并获得调试器控制台。

在视图中,您可以使用:

<%= console %>

在异常页面上访问IRB控制台。

请参阅debugging guide

如果您没有Rails 4,请添加到以下Gemfile

group :development, :test do
  gem 'byebug'
end

并运行bundle install

答案 3 :(得分:0)

从Rails 2.0开始,Rails内置了对ruby-debug的支持。在任何Rails应用程序中,都可以通过调用debugger方法来调用调试器。

这是一个例子:

class PeopleController < ApplicationController
  def new
    debugger
    @person = Person.new
  end
end

如果您在控制台或日志中看到该消息:

***** Debugger requested, but was not available: Start server with --debugger to enable *****

确保已使用--debugger选项启动了Web服务器:

rails server --debugger
=> Booting WEBrick
=> Rails 3.0.0 application starting on http://0.0.0.0:3000
=> Debugger enabled
...

https://guides.rubyonrails.org/v3.2.0/debugging_rails_applications.html#debug