Debugging Hints

首先想到的和广泛使用的是,写测试代码!rails 使得写unit test 和functional test
变得容易。使用了它们,你将发现bug 的出现率会显著减少。测试是廉价的保单。
测试会告诉你哪些东西起作用,哪些不起作用,有助于你隔离有问题的代码。但有时,
出现问题的原因不是非常明显。
如果问题出现在一个model 中,你可能想在web 程序外来跟踪相关的类。script/console
把你的rails 程序带到irb 的会话中,让你有机会测试方法。下面是当我们使用控制台来更新
一个产品的单价时的会话。
depot> ruby script/console
Loading development environment.
irb(main):001:0> pr = Product.find(:first)
=> #<Product:0x248acd0 @attributes={"image_url"=>"/images/sk..."
irb(main):002:0> pr.price
=> 29.95
irb(main):003:0> pr.price = 34.95
=> 34.95
irb(main):004:0> pr.save
=> true
日志和跟踪是动态理解复杂的应用程序的最好方式。你会发现development 的日志文件
中有很多信息。当不希望的事情发生时,它或许是你想看第一个地方。它也写入web 服务日
志。如果你在开发环境中使用了WEBric 的话,这将在使用script/server 命令的窗口滚动。
你也可以添加你自已的信息到前面描述的Logger 对象中。有时候日志文件很忙,它很难
找到你添加信息。在这些情况下,如果你使用WEBrick,的话将你出现WEBrick 控制台上信
息写入到STDERR 中。
如果一个页面显示警告信息,你可能想转储对象。Debug() helper 方法可用于这种情况。
它格式化对象并确保其内容是有效的HTML。
<h3>Your Order</h3>
<%= debug(@order) %>
<div id="ordersummary">
. . .
</div>
最后,所有问题都似乎得不到修正,你可以在你运行应用程序时,使用调试器。通常这
只能在开发环境下有效。
要使用断点:
1、在你想停下之处插入方法breakpoint( )。你可以像这个方法传递一个字符串—想区
别的信息。
2、在控制台上,导航你应用程序的基本目录和命令入口。
depot> ruby script/breakpointer
No connection to breakpoint service at
druby://localhost:42531 (DRb::DRbConnError)
Tries to connect will be made every 2 seconds...
不要为没有连接消息烦恼—它只意味着你的断言并没有被击中。

你可能感兴趣的:(html,Web,应用服务器,Ruby,Rails)