上篇笔记我们已经让我们的网站能够保存客户选购的产品了,但是,似乎少了点什么。恩,少了每样产品用户到底要买多少的数据。我们这次就把这个功能加上。
那么,我们需要一个能够描述用户选的产品以及数量的对象。好,我们就来定义一个叫“CartItem”的类完成这个任务吧。这个类将被保存在depot/app/modules目录中。
CartItem类的代码如下:
class CartItem
attr_reader :product, :quantity
def initialize(product)
@product = product
@quantity = 1
end
def increment_quantity
@quantity += 1
end
def title
@product.title
end
def price
@product.price * @quantity
end
end
从上面的代码我们可以看出,由于我们知道了用户选购了什么产品,以及用户选购的数量,所以我们可以很方便的把用户选购产品的总价计算出来。又为我们提供了一些方便。
接下来,我们要做的事情就是修改之前编写的“add_product”方法了。因为我们现在不应该只是简单的把产品ID放进我们的购物车了,而是要为该产品创建一个CartItem的实例,然后再将这个实例放进去了。那么让我们来看看新的“add_product”方法是什么样子。
def add_product(product)
current_item = @items.find {|item| item.product == product}
if current_item
current_item.increment_quantity
else
@items << CartItem.new(product)
end
end
好了,现在打开服务,在产品列表页面点击“Add to Cart”按钮,这时购物车页面中的产品后面是不是多了一个“x 1”的字样?哈哈!
问题
如果不回到产品列表页面,直接刷新购物车页面,产品的数量会在每次刷新后加1。怎么解决呢?
分享到:
相关推荐
Agile Web Development with Rails, 2nd Edition <br>有两份PDF文件,大小分别是7.39MB和6.55MB <br>作者: Dave Thomas , David Heinemeier Hansson , Leon Breedt , Mike Clark , James Duncan Davidson ,...
### 敏捷Web开发与Rails 3:关键知识点解析 #### 一、Rails版本与兼容性 本书《敏捷Web开发与Rails》第三版是基于Rails 2编写的。截至本书印刷时,当前可用的Rails Gem版本为2.1。书中所包含的所有代码均已在该...
文件列表中的《Agile Web Development with Rails 3nd Edition Beta.pdf》很可能是这本书的电子版,读者可以通过阅读此PDF文件获取完整的学习资料,包括详细的章节讲解、示例代码和练习题,以便在实践中不断巩固和...
《Agile Web Development with Rails》是一本经典的Rails开发指南,中文版的出版使得更多的中国开发者能够深入理解并应用敏捷开发方法与Ruby on Rails框架。这本书是Rails开发者的必备参考资料,它详细介绍了如何...
Ruby on Rails helps you produce high-quality, beautiful-looking web applications quickly. You concentrate on creating the application, and Rails takes care of the details., Tens of thousands of ...
Rails敏捷开发第三版,很不错的rails入门书,对初学rails的人很有用
总之,"depot"压缩包为学习者提供了一个宝贵的实践平台,通过实际操作,学习者可以更好地理解《Agile Web Development with Rails-Second Edition-Beta》中介绍的理论和技巧,从而提升自己的Rails开发技能。
在路由方面,Rails 3提供了更灵活的路由配置,允许开发者定义更直观的URL模式,增强了路由资源的概念,使得RESTful API的创建更为简单。 另外,本书还将探讨如何利用Unobtrusive JavaScript(UJS)与jQuery等...
《敏捷Web开发与Rails:程序指南 第四版》是一本深度探讨使用Ruby on Rails框架进行敏捷Web应用开发的专业书籍。本书旨在帮助开发者充分利用Rails 4的特性,提高开发效率,实现快速迭代和高质量的代码编写。 Rails是...
书中的"Pragmatic.Bookshelf.Agile.Web.Development.with.Rails.2nd.Edition.Dec.2006.eBook-BBL"可能是该书籍的电子版文件,它包含了全书的章节和内容。读者可以通过这个电子版深入学习Rails开发的各种技巧和最佳...
Agile Web Development with Rails 1-14节_ppt(老师发的修正版)
Agile Web Development with Rails, Third Edition by Sam Ruby, Dave Thomas, David Heinemeier Hansson Rails just keeps on changing. Rails 2, released in 2008, brings hundreds of improvements, including...
《敏捷Web开发与Rails 2nd Edition》源码解析 在Web开发领域,Rails框架以其高效、灵活和生产力提升的特点,成为了许多开发者首选的工具。《敏捷Web开发与Rails 2nd Edition》这本书深入浅出地介绍了如何使用Ruby ...
《敏捷Web开发与Rails》是一本深度探讨如何利用Ruby on Rails框架进行敏捷Web开发的指导书籍,由Dave Thomas、David Heinemeier Hansson等多位在Rails社区有着深厚贡献的作者共同编写。本书不仅覆盖了Rails的基本...