技巧
文章平均质量分 65
jinxihexilove
这个作者很懒,什么都没留下…
展开
-
ruby的include与extend
ruby提供了强大的继承机制,有关继承的方法很多。最简单就是“module Foo deffoo puts 'heyyyyoooo!'原创 2011-08-08 15:13:54 · 400 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(十六)-登录
现在我们的购物车程序为两种用户提供了服务,一类是普通用户,一类是管理员。两类用户分别有不同的功能。上次我们又实现了添加用户的功能,这次我们来实现登录的功能。 1. 给login_controller添加login方法。上次使用rails的命令行生成的l原创 2011-08-08 14:47:17 · 327 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(十七)-控制访问权限
上次我们实现了登录的页面,现在我们区别管理员和普通用户,根据用户的不同身份,转入到不同的页面 在rails中提供了filter来截获访问某个action的请求,可以用filter在action被调用前或调用后添加我们自己的处理。在这里,我们在admin的contr原创 2011-08-08 14:46:03 · 299 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(十八)-自动生成文档
到此,我们这个购物车的实现就完成了,下面我们可以利用ruby里的Rdoc来给我们的程序生成文档,和dotnet,java,python等一样,Rdoc可以把我们代码里类和方法声明前面的注释提取出来生成文档。 对于我们的depot程序,我们在rails的命令行里运行rake原创 2011-08-08 14:44:00 · 310 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(二十一)-测试Model时的问题
以前的随笔都是按照书上的例子写下来的,但是,这次在测试Model时,按照书上的例子代码怎么也走不通,所以就换个方式,这篇变成了提问。 按照书上的说法,在products_test.rb开始的时候,会根据定义的yml文件,加载测试数据到一个Hash里,这样,在test的时候我们原创 2011-08-08 14:42:17 · 223 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(二十四)-测试Controller
上篇随笔里介绍了rails在功能测试方面的一些约定。这次我们继续会到Controller的测试。之前我们测试的是login,可以相见,用户在login以后就要开始进行购物的动作了,所以我们现在就来测试store_controller,我们先来测试index方法。1.原创 2011-08-08 14:41:00 · 290 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(二十五)-测试Controller
这次我们继续测试Controller,还是Store_controller。1. 先来测试测试CheckOut功能,给store_controller_test.rb添加代码:def test_checkouttest_add_to_cartget :原创 2011-08-08 14:40:30 · 257 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(二十六)- 使用Mock对象
前面我们测试了model和controller,学习了一些常用的测试方法,现在我们来深入学习几个有关测试的主题。第一个是使用Mock对象。在很多时候,我们的程序和实际的环境有依存关系,比如现在的购物车,在汇款,结账的时候要接入网络上的银行账号,这样就造成了我们测试的时候必须要原创 2011-08-08 14:40:10 · 415 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(二十七)- 测试驱动开发
在敏捷开发的实践中,测试驱动是少不了的。这篇来看看在rails中的一个测试驱动开发的例子。在前面我们编写并进行了一些单元测试和功能测试,现在,我们的客户突然要求添加一个功能:系统的每个用户都可以对商品进行查询。 我们先初步的画了一些草图,来整理我们的思路和设计,然后开始写原创 2011-08-08 14:39:36 · 335 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(二十八)- 使用Rake运行测试
Rake是使用ruby编写的程序,我们用Rake来读入RakeFile。而Rakefile里包含了定义的任务,每个任务都有一个名字,和它所依赖的一些任务,并且还有一组要执行的动作。现在我们来了解一下Rails中的Rake。 当你使用Rails的generate脚本创建原创 2011-08-08 14:39:06 · 329 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(二十九)- 性能测试
Rails所针对的是Web项目,必须要考虑大访问量的情况,所以我们来看看在Rails怎样进行性能测试。1. 要进行性能测试,我们首先要模仿大量的数据,我们现在知道,在test/fixtures/目录下的yml文件里添加我们的测试数据,在运行测试时,这些数据会被加载原创 2011-08-08 14:38:40 · 248 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(三十)- NetBeans IDE
到现在,应该告一段落了,总共有二十九篇随笔,干脆凑个整数,再写写IDE环境吧。前面所有的代码都是我用ruby自带的编辑器SciTE编写的,很不方便,随着Rails的发展,目前也有很多IDE推出来,刚刚看到NetBeans推出的6.0rc版,提供了单独的Rails开发环境,这次来简原创 2011-08-08 14:37:59 · 399 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(三十三)- 命名约定
在刚开始学习Rails的时候可能会困惑于Rails时怎样自动处理命名的,比如如何根据一个名为Person的Model来到数据库中找到名为people的表,这次我们就来看看Rails里的命名约定。1. 混合大小写,下划线,复数我们经常使用简写命名变量,在Ruby原创 2011-08-08 14:32:57 · 266 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(三十六)- 调试技巧
这次我们来看看一些关于调试的小提示。首先,而且也是最重要的就是,编写测试代码,在Rails里编写单元测试和功能测试都很简单,使用它们,可以减低bug发生率,也可以避免在你从前的代码中突然出现bug。测试代码告诉你哪些东西能够工作,哪些不能,并且,测试代码帮助你隔离那些原创 2011-08-08 14:30:03 · 254 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(十五)-添加用户
从这篇开始,我们来实现一组用户管理的功能,首先是添加用户。 1. 首先,我们要创建一个表保存用户信息,并且生成一个对应的model。创建表的脚本,在phpAdmin里执行就可以了:create table users (id int not n原创 2011-08-08 14:48:40 · 334 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(十三)-订单(Order)
在上次的内容里,我们编写了CHECKOUT的处理。这次我们将显示购物车和订单放在一个页面上表示,这样用户在下订单的时候就可以很方便地看到自己的购物情况。 1. 修改checkout.rhtml文件,只要添加一句代码: "display_cart")原创 2011-08-08 14:50:39 · 252 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(十)-清空购物车和格式化金额
在上次的内容里,我们给购物车添加了错误处理,这次来实现清空购物车和金额的格式化处理。 到现在我们还没有给显示购物信息列表页面的“empty cart”链接添加任何处理。我们首先来实现这个功能:1. 在Store_Control.rb文件中添加empty_c原创 2011-08-08 14:53:06 · 297 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(九)-给购物车添加错误处理
在上次的内容里,我们演示了怎样构建一个简单的购物车,这次的内容非常简单,给购物车添加错误处理。 对于Web系统来说,并发处理是一个无法回避的问题,我们来模仿一个并发冲突的情景:1. 用户进入购物车页面,看到共有5种商品。2. 管理员原创 2011-08-08 14:53:51 · 295 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(十一)-订单(Order)
在上次的内容里,我们实现了清空购物车和金额的格式化处理。这次实现订单的模块。 1. 首先,我们要在数据库里创建Order表,创建表的Sql如下:create table orders (id int not null auto_increment,原创 2011-08-08 14:52:22 · 271 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(十四)-送货处理
在上次的内容里,我们完成了订单的编写。这次我们模拟一个简单的送货页面,给这个购物车的管理员用。 1. 首先,我们修改order表,给他添加一个字段shipped_at:create table orders (id int not null aut原创 2011-08-08 14:49:47 · 367 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(二十)-测试model(CRUD)
上篇随笔简单了解了rails的测试和测试用数据的使用,这次来看看怎样对一个model进行添删查改的测试。 1. 还是使用上次写的products_test.rb,修改test_turth方法的名字为test_create,并且使其内容为: def tes原创 2011-08-08 14:42:49 · 425 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(三十二)- Rails的配置文件
Rails的运行时配置是由config目录下的文件来控制的。1. 运行时环境(Runtime environment)当开发者编写代码时,需求是多中多样的。在开发中你可能会需要很多的登录,加载变化过的代码。在测试时,你需要各个系统之间是隔离开的。在发布之前,你原创 2011-08-08 14:33:47 · 273 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(三十五)- 日志(Log)
Rails内建了Log功能,或者更准确的说,Rails暴露了Logger对象,该对象可以在所有的Rails程序中使用。Logger是从ruby中移植过来的一个简单的Log框架(你可以在ruby的命令行里键入ri Logger来查看标准库的文档),对于我们而言,我们只需要知道L原创 2011-08-08 14:31:04 · 226 阅读 · 0 评论 -
Ruby on rails开发从头来(三十八)- ActiveRecord基础(列和属性)
ActiveRecord中的一个对象相当于数据库中表的一行,对象的属性对应于表的列,也许你会注意到我们的Order类没有提及关于orders表的任何东西,这是因为ActiveRecord在运行时来确定这些对应关系,Active Record将数据库中的模式反应到类中。我们的o原创 2011-08-08 14:28:37 · 268 阅读 · 0 评论 -
Ruby on rails开发从头来(四十四)- ActiveRecord基础(创建记录)
Active Record使得实现CRUD的数据库基本操作变得简单,在下面的几节里我们使用Mysql数据库中的orders表来进行CRUD的操作,这次先看创建(Create)。 我们假想有一个Model,名为Order:class Order end在面向对原创 2011-08-08 14:23:58 · 241 阅读 · 0 评论 -
Ruby on rails开发从头来(五十二)- ActiveRecord基础(删除记录)
Active Record提供了两种方式进行删除操作。首先,有两个类级别的方法,delete和delete_all,这两个操作处在数据库层面上,delete()方法接收一个或一组和数据库对应的id,delete_all()方法删除所有符合指定条件的记录,如果没有指定条件,就会删除原创 2011-08-08 14:18:08 · 288 阅读 · 0 评论 -
Ruby on rails开发从头来(五十五)- ActiveRecord基础(一对一关联关系)
一对一关联,或者更正确的说是一对零或一对一关联,是通过外键引用到另外一张表中的至多一条记录实现的,下图描述了orders表和invoices表的关系: 在Active Record中,要表示这样的关系需要在Order类中添加has_one:Invoice声明原创 2011-08-08 14:16:39 · 279 阅读 · 0 评论 -
Ruby on rails开发从头来(五十九)- ActiveRecord基础(预加载子记录)
预加载子记录讨论的问题和“延迟加载”是相同的。通常ActiveRecord会推迟从数据库中加载子记录,直到你需要他们,例如,通过Rdoc中的例子,我们假定博客程序有一个Model,像下面这样:classPost belongs_to:authorhas_many:原创 2011-08-08 14:09:52 · 306 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(七)-创建在线购物页面
在上一篇随笔中,我们为Products创建了一个维护用的列表页面,效果如图: 这次我们使用上面维护的Products列表来创建一个最终用户使用的购物页面。 1. 创建控制器(Controller),命名为store,我们通过命令行来创建它:原创 2011-08-08 14:57:43 · 378 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(八)-使用Session创建购物车
在前面的内容里,我们演示了怎样构建一个商品的列表,这次,我们在前面内容的基础上,构建一个简单的购物车。 1. 首先我们要来创建一个保存客户购物信息的表:数据库脚本:drop table if exists line_items;create t原创 2011-08-08 14:54:36 · 392 阅读 · 0 评论 -
Ruby on rails开发从头来(四十一)- ActiveRecord基础(存储结构化数据)
有时,能够在某个属性中直接存储任意的ruby对象是很方便的,一种办法就是Active Record支持序列化,将一个ruby对象变为一个YMAL字符串,并且将这个字符串存储到属性对应的数据库字段中。在数据库定义中,这个字段必须为text类型。 因为Active Reco原创 2011-08-08 14:26:30 · 279 阅读 · 0 评论 -
Ruby on rails开发从头来(四十三)- ActiveRecord基础(连接数据库)
Active Record抽象了数据库连接的概念,帮助应用程序来处理底层的数据库链接的细节,作为替代,Active Record使用通用的调用,将细节委托给一组数据库适配器。可以使用establish_connection( )方法来制定连接,下面的例子创建了一个mysql数原创 2011-08-08 14:24:45 · 361 阅读 · 0 评论 -
Ruby on rails开发从头来(四十五)- ActiveRecord基础(读取记录)
读取记录包括指定那些特定的数据是你感兴趣的,你给Active Record指定标准,Active Record再返回给你一些对象,其中包含了符合条件的记录的数据。 在一个表中检索数据的最简单的办法就是指定主键,任何一个Model都支持find()方法,该方法支持一个或多原创 2011-08-08 14:23:34 · 229 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(十二)-订单(Order)
在上次的内容里,我们创建了订单的Model,和表示页面,这次继续编写CHECKOUT的处理。 1. 在checkout.rhtml的页面上,有一个CHECKOUT按钮,上次还没有给它编写处理代码,现在在store_controller中添加save_order原创 2011-08-08 14:51:31 · 285 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(十九)-测试开始
前面我们已经完成了一个简单的购物车,从这篇开始我们看看在rails中怎样进行测试。 在我们创建购物车程序的时候在我们的depot目录下,就已经有一个test目录了,这就是为我们进行测试准备的。到目前为止,我们看到里面的fixtrues和functional,unit目录中原创 2011-08-08 14:43:14 · 303 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(二十二)-测试Controller
上次测试Modeul的问题还没有解决,但是下面的还要继续,这次来测试Controller。1. 在test\functional目录下,rails已经为我们的controller生成了对应的测试文件,要注意application_controller不会生成测试文原创 2011-08-08 14:41:45 · 282 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(二十三)-功能测试的约定
上篇随笔里测试了login_controller,我们使用了很多rails内建的断言和get,put等方法来进行测试。这次来看看rails在功能测试方面的一些约定。1. HTTP请求的方法(HTTP request method)下面的方法用来模拟HTTP请求原创 2011-08-08 14:41:18 · 207 阅读 · 0 评论 -
Ruby on rails开发从头来(windows)(三十一)- Rails的目录结构
之前的三十篇都是根据书本上的内容写的,很少有自己的理解,从这篇开始,来了解一些Rails的内部机理,所以理解的东西比较多,代码就少了,这次我们来看看Rails的目录结构。关于Rails的目录结构,通过前面的练习,我们应该有一些了解了,我们的工作目录主要是app和test两个。原创 2011-08-08 14:35:00 · 259 阅读 · 0 评论 -
Ruby on rails开发从头来(三十七)- ActiveRecord基础
ActiveRecord是Rails提供的一个对象关系映射(ORM)层,从这篇开始,我们来了解Active Record的一些基础内容,连接数据库,映射表,访问数据等。 Active Record使用基本的ORM模式:表映射成类,行映射成为对象,列映射成对象的属性。与很多原创 2011-08-08 14:29:36 · 317 阅读 · 0 评论 -
Ruby on rails开发从头来(三十九)- ActiveRecord基础(访问属性)
如果在一个model对象中有一个名为balance的属性,你可以通过索引操作符来获取该属性的值,你可以使用一个字符串或者标记,在这里我们使用标记,例如:account[:balance] #=> 获取值account[:balance] = 0.0 #=> 设置值但是原创 2011-08-08 14:27:37 · 263 阅读 · 0 评论