首先,而且也是最重要的就是,编写测试代码,在Rails里编写单元测试和功能测试都很简单,使用它们,可以减低bug发生率,也可以避免在你从前的代码中突然出现bug。
测试代码告诉你哪些东西能够工作,哪些不能,并且,测试代码帮助你隔离那些有问题的代码,因为有时候bug并非很快地表现出来。
如果问题发生在一个Model中,我们可以使用脚本script/console来模拟一个irb对话,在其中进行跟踪,例如下面这样:
Z:\study\ruby\InstantRails\rails_apps\depot>ruby script/console
Loading development environment.
>> pr = Product.find(:first)
=> #<Product:0x4b969ec @attributes={"image_url"=>"http://www.qq.com.
>> pr.price
=> #<BigDecimal:4b913d4,'0.12351E3',8(12)>
>> pr.image_url
=> "http://www.qq/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的程序,下面是使用断点(breakpoint)的步骤:
1. 在你需要程序停下来的地方添加breakpoint()方法的调用。
2. 在项目的根目录键入命令:depot>ruby script/breakpointer。
打开浏览器,使你的程序能够命中调用breakpoint方法的代码,这时候浏览器会停止响应,在命令行窗口会打开irb会话,在这里,你可以查看变量的值,或者添加断点,当你推出irb会话,在浏览器里,程序就会继续运行。
分享到:
相关推荐
本压缩包中的"web开发之rails最新调试通过购物车代码"是关于使用Rails进行Web应用开发的一个实例,特别是针对购物车功能的实现。 购物车是电商网站的核心部分,它允许用户选择商品并保存这些选择以便后续购买。在...
压缩包子文件的文件名称 "Ruby on Rails.pptx" 提示可能是一个关于Rails的PowerPoint演示文稿,其中可能涵盖了Rails的基础概念、安装步骤、主要组件介绍、开发流程、最佳实践,以及可能的示例代码和案例研究。...
**标题与描述**:本书重视测试的重要性,详细介绍了如何为Rails应用编写各种类型的测试(如单元测试、功能测试等),并提供了一些调试技巧。 **详细说明**: - **测试类型**: - **单元测试**:针对单个模型或控制...
本书还涉及了当常规的Ruby调试技巧失效时,如何使用系统工具来解决Ruby进程中的问题,这对于处理复杂错误和性能瓶颈非常有帮助。 #### Writing Efficient Ruby Code 最后,书中还讨论了如何编写高效的Ruby代码,这...
而“工具”可能指的是书中介绍的一些用于Rails开发的辅助工具或插件,如数据库管理、测试框架、调试工具等。 在压缩文件列表中,我们看到的是`rails cookbook(普通下载).chm`。`.chm`是Microsoft编写的帮助文件格式...
通过学习和实践压缩包中的"Ruby on Rails入门经典代码",新手不仅可以了解Rails的基本概念,还能掌握实际项目中的应用技巧,逐步成长为一名熟练的Rails开发者。记得不断探索、实践和学习新的Rails知识,以适应不断...
此外,《Flexible Rails: Flex 3 on Rails 2》还包含了一些热门技巧和其他有用的信息,如最佳实践、调试技巧等,这些都为开发者提供了宝贵的参考资源,帮助他们更高效地使用Flex 3和Rails 2。 通过上述内容,我们...
- **测试与调试**:讲解了如何有效地进行单元测试、集成测试及端到端测试,并提供了调试技巧。 - **安全性**:讨论了如何增强Rails应用的安全性,包括数据验证、CSRF保护等方面的知识。 - **部署与维护**:介绍了...
本章节详细介绍了Rails应用的基本架构,包括三个核心组件:模型(Model)、视图(View)和控制器(Controller),即MVC模式。 **2.1 模型、视图与控制器** - **模型(Model)**:负责处理应用数据逻辑的部分,通常...
标签提及了“源码”和“工具”,这可能暗示书中会涉及Rails框架的源代码解析、开发工具的使用以及可能的调试技巧。 压缩包中的文件 "Web Services on Rails.chm" 是一个帮助文件,通常包含详细的技术指南或教程。这...
在Windows环境下,使用NetBeans进行Rails开发需要一系列的配置步骤,因为Rails是一个基于Ruby的Web框架,而NetBeans是一款强大的...不断学习和实践,掌握Rails和NetBeans的使用技巧,将有助于提高开发效率和代码质量。
- **调试技巧**:提供有效的调试方法,帮助开发者快速定位问题。 - **单元测试和集成测试**:讲解如何编写测试用例,确保代码质量。 - **性能测试**:介绍如何进行压力测试和性能瓶颈分析。 #### 12. **部署和...
9. 错误处理、调试技巧和应用维护。 10. Rails的安全性考虑,如防止SQL注入、XSS攻击等。 总的来说,这份压缩包对于想要深入了解Rails开发,尤其是想要将Rails与Flex结合使用的人来说,是一份宝贵的学习资源。通过...
10. **Rails Console**:交互式的命令行工具,用于运行Rails应用的上下文中的Ruby代码,是调试和实验代码的好帮手。 11. **Action Cable**:Rails 5引入的特性,实现了Websocket通信,支持实时的双向通信功能,用于...
本节将详细介绍如何构建一个简单的 **Flex + Rails** 应用程序。为了实现这一目标,通常会采用 XML over HTTP 服务来使 **Flex** 客户端与 RESTful 的 **Rails** 服务器进行通信。这意味着 **Rails** 控制器不仅支持...