ruby-on-rails - Ruby/Rails 调试策略

标签 ruby-on-rails ruby debugging

请分享您在 Ruby/Rails 中进行调试的方法。

我正忙于学习 Rails 教程,遇到错误:

NoMethodError in UsersController#show
undefined method `microposts' for #<User:0x83b43e8>

这让我开始思考调试策略。有没有人对新的 Rails 用户(和新的 MVC 用户)有关于调试策略的建议。你遵循什么路径?是否有普遍接受的方法?有没有办法单步执行代码?

现在我正在使用单元测试作为一种“lint”检查器,但也仅此而已。

虽然我想解决它,但我现在遇到的实际错误并不是这个问题的主旨。

(PS:问题不是 Stackoverflow 上其他地方记录的重复“显示”

最佳答案

我还没有看到这个被提及,但另一种选择是在您的代码中放置一个 debugger 语句。像这样

def some_method
  something = 3
  debugger
  # ... more code
end

如果在 Rails 应用程序中,当代码到达 debugger 时,它将导致运行 Web 服务器的终端窗口跳转到看起来像 irb session 的东西(我不确定是什么这是)。例如,您可以从那里puts something 来查看值是什么。您甚至可以puts params 来查看所有参数值是什么。您还可以单步执行代码、跳转到特定行等。

Pry 似乎是解决此问题的更好方法,但这是我在知道 pry 之前用来调试的方式。

注意:如果您在 Rails 之外执行此操作,则可能需要执行 require 'ruby-debug'

关于ruby-on-rails - Ruby/Rails 调试策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8071170/

相关文章:

C# ASP.NET MVC3 优于 Ruby on Rails 3、Django?

ruby-on-rails - 验证地理位置的纬度和经度

ruby-on-rails - 在 Rails 中创建多个链接的下拉列表

debugging - VS 2015 Update 2 - 调试时变量不存在,为什么?

python - print() 方法按字面意义打印传递的表达式以及计算输出,以便快速调试

ruby-on-rails - 如何从响应中找到 PayPal 定期付款的当前状态?

ruby - Nokogiri 识别页面上最大文本的策略?

ruby-on-rails - Ruby on Rails 4 : How to authenticate to Azure AD from Rails Application?

mysql - rails 和 RSpec : test DB with preexisting records

java - 如何调试 build.gradle 执行?