《Agile Web Development with Rails》抄书笔记系列
“《Agile Web Development with Rails》抄书笔记系列”目录
上一节提到,客户希望我们的网店使用Ajax来实现。那么神马是Ajax呢?
在过去(2005年以前),浏览器被我们当作一个聋哑人。当我们开发一个基于浏览器的应用时,我们会发送一个页面到浏览器,然后忽略这次会话。曾几何时,用户填写一些表单信息,然后点击链接,接着应用被进来的请求唤醒,开始处理请求。最后,应用返回一个完整页面给用户,冗长的处理过程还要再度开始。在此之前,我们的Depot应用也是如此。
但是,事实上浏览器并非是一个聋哑人。浏览器也可以运行代码,几乎所有的浏览器都可以运行JavaScript。另外,经试验证明,JavaScript可以在幕后和服务器进行交互,更新页面。 Jesse James Garrett将 阅读全文…
《Agile Web Development with Rails》抄书笔记系列
“《Agile Web Development with Rails》抄书笔记系列”目录
上一节,我们介绍了如何进行错误处理。另外,既然可以向购物车中添加商品,那么清空购物车也是一个必要的功能。我们这节来实现清空购物车的功能。
D呱呱
关于这节内容的代码:
- 这节开始之前:https://github.com/diguage/depot/tree/v-10.2
- 这节完成之后:https://github.com/diguage/depot/tree/v-10.3
要实现清空购物车的功能,那么我们必须 阅读全文…
《Agile Web Development with Rails》抄书笔记系列
“《Agile Web Development with Rails》抄书笔记系列”目录
上一节,我们介绍了如何将购物车中相同的商品合并到一条记录中。还让大家寻找购物车实现的缺点。大家有木有什么发现啊?
请大家注意,向购物车添加商品后,购物车页面的URL,格式是否如cart/nnn,其中,nnn是购物车的ID。如果我是一个居心叵测的捣蛋鬼,我填入一个非法的字符,会显示什么结果呢?D瓜哥试验的结果是, Active Record 会报一个 RecordNotFound 的异常,进一步会显示应用的调用信息、框架信息以及服务器相关信息。有了这些信息,那些别有用心的捣蛋鬼就可以实施有针对性的攻击,甚至破坏我们的应用等。所以,要针对这些错误做一些特殊处理。这就引出了我们这节的主要内容: 阅读全文…
《Agile Web Development with Rails》抄书笔记系列
“《Agile Web Development with Rails》抄书笔记系列”目录
虽然上一节,我们创建了个一个初步在购物车,也通过了功能性验证。但是,这个购物车还有很多不完善的地方,比如,如果顾客添加了多个同一件商品,那么我们就需要重组这个购物车。这一节,我们将从这方面着手,来完善这个购物车。
D呱呱
关于这节内容的代码:
- 这节开始之前:https://github.com/diguage/depot/tree/v-09.3
- 这节完成之后:https://github.com/diguage/depot/tree/v-10.1
解决上面提到的这个问题,其实很简单只需要给 line_items表增加一个表示数量的列即可,我们将 阅读全文…