
Ruby and Rails
iteye_10698
这个作者很懒,什么都没留下…
展开
-
Agile Web Development with Rails 3nd Edition学习笔记-创建Depot工程
开始学习ROR了,由于在开始跟着书做这个Depot工程时才决定把整个过程整理出来写成博客的,所以书开始部分讲的环境安装部分都没有整理。等以后再补充上来吧。 由于是刚刚开始学这个,所以在实验和总结的时候还是有一些疑问。在下面的内容中也都记录了下来。以便以后能够把曾遇到的问题逐个解决。当然,如果看了我总结的内容的朋友有知道答案的,还望指点小弟一二。另外,如果我描述的东西有哪里不正确的...2010-04-17 21:21:54 · 120 阅读 · 0 评论 -
Agile Web Development with Rails 3nd Edition学习笔记-高亮显示改变
当客户点击了“Add to Cart“按钮之后,购物车的数据改变了。我们希望能够让用户清楚的看到是那个是哪个发生了改变。那么,我们让当前被改变(个数变化,或者添加了)的那个产品被高亮一段时间。之前我们通过“javascript_include_tag”引入了一些JavaScript的库文件。其中有一个是effects.js的库文件。这个库文件为我们提供了很多视觉效果的实现,其中有一个叫做“Ye...2010-04-28 22:24:21 · 137 阅读 · 0 评论 -
Agile Web Development with Rails 3nd Edition学习笔记-创建一个基于Ajax的购物车
上篇笔记中,我们通过partial把购物车信息放到了index页面的Sidebar上。当我们点击“Add to Cart”按钮时,Sidebar上的商品和数目会改变。但是,我们同时会发现,刷新了的不仅仅是购物车信息,整个页面都刷新了。如果你的浏览器中显示的本来就是页面的最顶端,就不会有什么感觉。但是如果你选择的产品是在你浏览到了页面的中间或者更下面,当你点击了“Add to Cart”之后,页面又...2010-04-27 22:59:01 · 120 阅读 · 0 评论 -
Agile Web Development with Rails 3nd Edition学习笔记-使用Ajax将购物车放入Sidebar
之前,当用户点击了“Add to Cart“按钮之后,页面会跳转到add_to_cart页面。用户想继续选购产品需要点击浏览器的回退按钮才能再回到产品列表页面。另外,用户在查看产品列表页面是如果想看看自己已经选了些什么东西,以及需要花多少钱时,在不添加新的产品到购物车的情况下,其实是做不到的。这个用户带来了很大的不便。所以,我们想改进我们的网站。把购物车的列表摆放到页面的Sidebar上。这样...2010-04-27 00:38:40 · 111 阅读 · 0 评论 -
Agile Web Development with Rails 3nd Edition学习笔记-完成购物车
这一篇,我们来完成我们的购物车的制作吧。首先,为了客户能够很方便的把购物车中的产品全部清空,我们需要给我们的购物车添加一个“Empty cart”的按钮。在add_to_cart.html.erb文件最后加入如下代码:[code="ruby"] 'empty_cart' %>[/code]这里action指向的具体的处理方法还没有实现,所以,我们还需要在store_controll...2010-04-26 22:41:50 · 110 阅读 · 0 评论 -
Agile Web Development with Rails 3nd Edition学习笔记-错误处理
这一部分其实东西很少,这里不做过多的描述,仅仅是记录下来,以便今后查询使用。以add_to_cart方法为例,当该方法收到一个错误的产品id时,会得到一个ActiveRecord::RecordNotFound错误。对应的包含错误处理的代码如下:[code="ruby"]def add_to_cart product = Product.find(params[:id]) @c...2010-04-26 22:07:46 · 122 阅读 · 0 评论 -
Agile Web Development with Rails 3nd Edition学习笔记-创建更智能的购物车
上篇笔记我们已经让我们的网站能够保存客户选购的产品了,但是,似乎少了点什么。恩,少了每样产品用户到底要买多少的数据。我们这次就把这个功能加上。那么,我们需要一个能够描述用户选的产品以及数量的对象。好,我们就来定义一个叫“CartItem”的类完成这个任务吧。这个类将被保存在depot/app/modules目录中。CartItem类的代码如下:[code="ruby"]class Ca...2010-04-25 17:05:17 · 105 阅读 · 0 评论 -
Agile Web Development with Rails 3nd Edition学习笔记-创建购物车
上篇笔记中,我们为保存用户选购的商品提供了场所。那么,这篇我们就要开始制造我们的购物车了。首先,我们要为购物车定义一个类,这个类现在只做很简单的事情,就是保存用户选择的商品。我们管这个类叫“Cart”,我们将它保存在depot/app/models/cart.rb文件中。详细代码如下:[code="ruby"]class Cart attr_reader :items de...2010-04-23 22:06:45 · 109 阅读 · 0 评论 -
Agile Web Development with Rails 3nd Edition学习笔记-把Sessions放进数据库
depot在线商店需要一个能保存用户选购的各种各样的商品的地方,而对于Web程序而言,每个页面和请求的生命周期都是瞬间了,彼此之间没有任何的状态记录。当用户在一个页面选择了一样商品,再去另一个页面选择另一样商品的时候,上一个页面的数据已经荡然无存了。就像狗熊掰苞米,掰一个放在胳肢窝下,再掰一个放在胳肢窝下,之前的那个就没有了。(哈哈!这个比喻也许不那么恰当。 :wink: )那么,我们怎么保存...2010-04-21 22:21:34 · 116 阅读 · 0 评论 -
Agile Web Development with Rails 3nd Edition学习笔记-格式化价格和添加购物按钮
这篇只有很少的一点内容,只是说说如何格式化价格数据成为货币的格式,以及在价格后面添加一个“添加到购物车”的按钮。1. 格式化价格数据: 一般,我们在格式化数据的时候,首先想到的总是sprintf之类的具有格式化字串能力的方法。例如,当我们要格式化12.34为$12.34,而格式化13成$13.00时可以这样写:[code="Ruby"][/code] 但当我们想做到全球化时,这...2010-04-19 22:42:08 · 100 阅读 · 0 评论 -
Agile Web Development with Rails 3nd Edition学习笔记-创建页面布局模板
典型的网站一般都具有一致的布局,ASP.NET中使用TemplatePage就提供了一个做到这件事的途径。它使得每个页面都在一个确定的页面框架中显示。那么,Rails中能否做到,又是如何做到这一点的呢?这一节的内容就要说明这个问题。在Rails中,每一个Controller都可以有一个与之对应的Layout文件,这个文件保存在app/views/layouts目录中。我们就可以通过这个La...2010-04-19 01:32:50 · 139 阅读 · 0 评论 -
Agile Web Development with Rails 3nd Edition学习笔记-创建产品目录列表
按照书上的引导,我们现在该是增加一个新的Controller的时候了。这个Controller用于将产品归类,并产生归类后的产品列表页面。它的名字叫store。现在我们创建这个Controller:[quote]ruby script/generate controller store index[/quote]执行这个命令之后,我们需要的关于store的文件就都创建好了。通过观察...2010-04-18 19:48:51 · 107 阅读 · 0 评论 -
Agile Web Development with Rails 3nd Edition学习笔记-美化我们的程序
我们的程序现在显示出来的画面还是那么的原始和难看,接下来我们要做一些工作来美化它。首先,作为准备,我们需要现添加一些用来测试的数据。执行下面的命令:[quote]ruby script/generate migration add_test_data[/quote]它会为我们创建一个用来添加数据的migration文件。但是这个rb文件生成出来是空的。方便起见,我们按照书中说的,下...2010-04-18 18:37:17 · 119 阅读 · 0 评论 -
Agile Web Development with Rails 3nd Edition学习笔记-为数据增加校验处理
数据的校验是在model中进行的。所有的model类都从ActiveRecord::Base继承。该基类已经为我们完成了很多的工作,如数据库映射、创建、更新和查询等。 下面我们来说一些常用校验处理的实现方法。这些校验都是通过在product.rb文件的Product类中添加代码来实现的。 1. 校验数据是否为空: 我们可以通过在Product类开始部分添加如下代码来验...2010-04-18 00:23:18 · 108 阅读 · 0 评论 -
Agile Web Development with Rails 3nd Edition学习笔记-向数据库表追加字段
我们可以使用migration工具在存在的数据库表中追加字段: [quote]ruby script/generate migration add_price_to_product price:decimal[/quote] 命令执行的命令行显示如下: [quote]exists db/migratecreate db/migrate/20100417140530_a...2010-04-18 00:07:43 · 95 阅读 · 0 评论 -
Agile Web Development with Rails 3nd Edition学习笔记-隐藏空的购物车
到现在位置,我们已经完成了产品列表和购物车功能。虽然看起来已经很棒了,但是,有一个细节,那就是当用户登录之后,就会有一个没有任何物品列表的购物车在那里。我们希望在这种情况下可以不显示它。因为有很多时候顾客来了只是转转,并不打算订购些什么。一个空购物车在那里不仅占了空间,而且也不是很美观。书中其实讲了4中方法实现这个需求。前三个都不是很好,第四个其实是一个创建自定义Helper的范例,做出来的效...2010-04-29 23:19:37 · 143 阅读 · 0 评论