rubyonrails:Ruby on rails开发从头来(windows)( 3十 6)- 调试窍门技巧

  这次我们来看看些有关调试小提示

  首先而且也是最重要就是编写测试代码在Rails里编写单元测试和功能测试都很简单使用它们可以减低bug发生率也可以避免在你从前代码中突然出现bug

  测试代码告诉你哪些东西能够工作哪些不能并且测试代码帮助你隔离那些有问题代码有时候bug并非很快地表现出来

  如果问题发生在个Model中我们可以使用脚本script/console来模拟个irb对话在其中进行跟踪例如下面这样: Z:studyrubyInstantRailsrails_appsdepot>ruby script/console
Loading development environment.
>> pr = Product.find(:first)
=> #<Product:0x4b969ec @attributes={"image_url"=>"http://www.dearbook.com.
>> pr.price
=> #<BigDecimal:4b913d4,'0.12351E3',8(12)>
>> pr.image_url
=> "http://www.dearbook.com.cn/book/BookImage/67/lastTS00168921__.jpg"
>> pr.save
=> true
>>
我们先在depot项目命令行中使用ruby script/console来启动irb会话蓝色部分是我在irb会话中输入命令   另外在复杂中使用Log也是个好办法你可以在log文件中找到大量有价值信息些意外情况发生Log文件应该是你第个要检查地方还有检查服务器log文件也是很有用如果你使用WEBrick作为web服务器也可以使用脚本script/server来启动个会话

  我们可以使用Logger对象来输出我们想查看信息有时候log文件非常繁忙以至于很难找到你所添加log如果你使用WEBrick你可以使用STDERR来将你log输出到控制台上(InstantRails使用Mongrel不能进入命令行)

  如果个页面显示了内容我们也许想导出控制器中对象思路方法debug能帮助我们该思路方法很好格式化对象内容并且判断对象内容是不是合法HTML例如:

<h3>Your Order</h3>
<%= debug(@order) %>
<div id="ordersummary">
. . .
</div>


  最后在上面思路方法都不能排除bug时候我们来尝试跟踪调试但是只限于环境配置为development下面是使用断点(po)步骤:

  1.    在你需要停下来地方添加po思路方法

  2.    在项目根目录键入命令:depot>ruby script/poer

  打开浏览器使你能够命中po思路方法代码这时候浏览器会停止响应在命令行窗口会打开irb会话在这里你可以查看变量或者添加断点当你推出irb会话在浏览器里就会继续运行

Tags:  rubyonrails安装 rubyrails rubyonrails教程 rubyonrails

延伸阅读

最新评论

发表评论