如何使用rails控制台调试并放入应用程序

inq*_*ive 2 ruby debugging ruby-on-rails

我想通过rails控制台打开irb打印的一些线条.我已经看到很多关于如何实现它的SO问题.但是我没有得到任何结果.

下面是代码 -

def show
puts 'in show method'
@post = Feed.find_by_id params[:id]
puts @post.inspect
redirect_to root_path unless @post.present? 
end
Run Code Online (Sandbox Code Playgroud)

现在我已按命令打开服务器rails server.另外,在另一个终端我给出了命令rails console,它打开了irb提示符.当我在浏览器中运行localhost:3000/posts/82它时会给出正确的帖子,但控制台中没有显示任何内容.我错过了什么步骤?我想在调用特定方法时在控制台中打印一些东西.

Fer*_*Fer 8

调试的最佳方法是使用该debugger命令.

如果您使用的是ruby 2.0或更高版本,则必须使用gem 'byebug',如果您使用的是1.9或更低版本,则必须使用gem ruby-debug

然后,当您在开发模式下运行服务器时,服务器将在到达时停止,debugger允许您查看对象的状态并对其进行修改(比简单地使用更好)puts

程序将停在服务器运行的同一窗口中.

一些基本命令:

  • c 继续执行直到找到下一个调试器
  • n运行下一个命令.如果是函数则执行函数
  • s进入下一个命令.如果它是一个函数,你将进入函数并查看变量
  • display expression 在每一步显示您编写的表达式的结果(在调试循环时非常有用)
  • undisplay expression_number 停止显示表达
  • display 显示正在显示的所有表达式
  • list 显示正在执行的源代码
  • help显示可用命令 help command_name显示有关命令的详细信息

有关调试的更多信息:http://guides.rubyonrails.org/debugging_rails_applications.html