- 浏览: 30463 次
- 性别:
- 来自: 苏州
最新评论
这一篇,我们来完成我们的购物车的制作吧。
首先,为了客户能够很方便的把购物车中的产品全部清空,我们需要给我们的购物车添加一个“Empty cart”的按钮。
在add_to_cart.html.erb文件最后加入如下代码:
这里action指向的具体的处理方法还没有实现,所以,我们还需要在store_controller.erb文件中添加这个方法。
具体代码如下:
好了,现在开启服务,看看我们的清空购物车的按钮好不好用吧。
接下来,我们需要对我们的代码做一些优化。在之前的错误处理和这里为了显示购物车已经清空的信息,我们都使用了flash对象,而且同样的在设置消息内容之后把页面重定向到了index页面。这些代码除了消息内容不同外,其它的完全相同。所以,我们应该为这些代码抽出一个方法来,这个方法可以叫做“redirect_to_index”或者其它你喜欢的名字。这里我们就叫它“redirect_to_index”吧。
这个方法的代码如下:
另外,我们需要对add_to_cart页面做一些美化。首先需要修改add_to_cart.html.erb文件来把购物车中的产品摆放整齐,并为用户把所需开销计算出来。
新的add_to_cart.html.erb文件中的代码如下:
这段代码中使用了一个叫做total_price的方法,而这个方法我们还没有在Cart类中定义。那么我们现在就去定义它。
还有一些需要定义的CSS样式,详细如下:
好了,我们的购物车到这里就完成了。
启动你的服务,看看我们的成果吧!
首先,为了客户能够很方便的把购物车中的产品全部清空,我们需要给我们的购物车添加一个“Empty cart”的按钮。
在add_to_cart.html.erb文件最后加入如下代码:
<%= button_to 'Empty cart', :action => 'empty_cart' %>
这里action指向的具体的处理方法还没有实现,所以,我们还需要在store_controller.erb文件中添加这个方法。
具体代码如下:
def empty_cart session[:cart] = nil flash[:notice] = "Your cart is currently empty" redirect_to :action => 'index' end
好了,现在开启服务,看看我们的清空购物车的按钮好不好用吧。
接下来,我们需要对我们的代码做一些优化。在之前的错误处理和这里为了显示购物车已经清空的信息,我们都使用了flash对象,而且同样的在设置消息内容之后把页面重定向到了index页面。这些代码除了消息内容不同外,其它的完全相同。所以,我们应该为这些代码抽出一个方法来,这个方法可以叫做“redirect_to_index”或者其它你喜欢的名字。这里我们就叫它“redirect_to_index”吧。
这个方法的代码如下:
private def redirect_to_index(msg) flash[:notice] = msg redirect_to :action => 'index' end
另外,我们需要对add_to_cart页面做一些美化。首先需要修改add_to_cart.html.erb文件来把购物车中的产品摆放整齐,并为用户把所需开销计算出来。
新的add_to_cart.html.erb文件中的代码如下:
<div class="cart-title">Your Cart</div> <table> <% for item in @cart.items %> <tr> <td><%= item.quantity %>×</td> <td><%=h item.title %></td> <td class="item-price"><%= number_to_currency(item.price) %></td> </tr> <% end %> <tr class="total-line"> <td colspan="2">Total</td> <td class="total-cell"><%= number_to_currency(@cart.total_price) %></td> </tr> </table> <%= button_to "Empty cart" , :action => :empty_cart %>
这段代码中使用了一个叫做total_price的方法,而这个方法我们还没有在Cart类中定义。那么我们现在就去定义它。
def total_price @items.sum { |item| item.price } end
还有一些需要定义的CSS样式,详细如下:
.cart-title { font: 120% bold; } .item-price, .total-line { text-align: right; } .total-line .total-cell { font-weight: bold; border-top: 1px solid #595 ; }
好了,我们的购物车到这里就完成了。
启动你的服务,看看我们的成果吧!
发表评论
-
Agile Web Development with Rails 3nd Edition学习笔记-隐藏空的购物车
2010-04-29 23:19 1047到现在位置,我们已经完成了产品列表和购物车功能。虽然看起来已经 ... -
Agile Web Development with Rails 3nd Edition学习笔记-高亮显示改变
2010-04-28 22:24 883当客户点击了“Add to Cart“按钮之后,购物车的数据改 ... -
Agile Web Development with Rails 3nd Edition学习笔记-创建一个基于Ajax的购物车
2010-04-27 22:59 950上篇笔记中,我们通过partial把购物车信息放到了index ... -
Agile Web Development with Rails 3nd Edition学习笔记-使用Ajax将购物车放入Sidebar
2010-04-27 00:38 1072之前,当用户点击了“Add to Cart“按钮之后,页面会跳 ... -
Agile Web Development with Rails 3nd Edition学习笔记-错误处理
2010-04-26 22:07 868这一部分其实东西很少,这里不做过多的描述,仅仅是记录下来,以便 ... -
Agile Web Development with Rails 3nd Edition学习笔记-创建更智能的购物车
2010-04-25 17:05 821上篇笔记我们已经让我们的网站能够保存客户选购的产品了,但是,似 ... -
Agile Web Development with Rails 3nd Edition学习笔记-创建购物车
2010-04-23 22:06 905上篇笔记中,我们为保 ... -
Agile Web Development with Rails 3nd Edition学习笔记-把Sessions放进数据库
2010-04-21 22:21 1029depot在线商店需要一个能保存用户选购的各种各样的商品的地方 ... -
Agile Web Development with Rails 3nd Edition学习笔记-格式化价格和添加购物按钮
2010-04-19 22:42 1047这篇只有很少的一点内 ... -
Agile Web Development with Rails 3nd Edition学习笔记-创建页面布局模板
2010-04-19 01:32 1023典型的网站一般都具有 ... -
Agile Web Development with Rails 3nd Edition学习笔记-创建产品目录列表
2010-04-18 19:48 800按照书上的引导,我们 ... -
Agile Web Development with Rails 3nd Edition学习笔记-美化我们的程序
2010-04-18 18:37 1036我们的程序现在显示出来的画面还是那么的原始和难看,接下来我们要 ... -
Agile Web Development with Rails 3nd Edition学习笔记-为数据增加校验处理
2010-04-18 00:23 987数据的校验是在model ... -
Agile Web Development with Rails 3nd Edition学习笔记-向数据库表追加字段
2010-04-18 00:07 935我们可以使用migration工具在存在的数据库表中追加字 ... -
Agile Web Development with Rails 3nd Edition学习笔记-创建Depot工程
2010-04-17 21:21 930开始学习ROR了,由于在开始跟着书做这个Depot工程 ...
相关推荐
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》中,读者可以学习到如何运用敏捷方法来规划项目,实施增量式开发,并通过频繁的反馈来提高产品质量。 Ruby on Rails(简称Rails)是一个基于Ruby语言的开源Web开发框架,它...
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的人很有用
《敏捷Web开发与Rails》第四版是一本专为软件开发者设计的权威指南,全面涵盖了使用Ruby on Rails框架进行敏捷Web应用开发的知识。Rails 3是该版本的重点,它引入了许多新特性和改进,使得开发过程更为高效且灵活。...
《Agile Web Development with Rails-Second Edition-Beta》是一本专注于使用Ruby on Rails进行敏捷Web开发的书籍。这本书的第二版beta版提供了关于如何利用Rails框架高效构建动态、响应式网站的深入指导。作者们...
《敏捷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, 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...
Agile Web Development with Rails 1-14节_ppt(老师发的修正版)
《敏捷Web开发与Rails 2nd Edition》源码解析 在Web开发领域,Rails框架以其高效、灵活和生产力提升的特点,成为了许多开发者首选的工具。《敏捷Web开发与Rails 2nd Edition》这本书深入浅出地介绍了如何使用Ruby ...
《敏捷Web开发与Rails》是一本深度探讨如何利用Ruby on Rails框架进行敏捷Web开发的指导书籍,由Dave Thomas、David Heinemeier Hansson等多位在Rails社区有着深厚贡献的作者共同编写。本书不仅覆盖了Rails的基本...