- 浏览: 29401 次
- 性别:
- 来自: 苏州
最新评论
按照书上的引导,我们现在该是增加一个新的Controller的时候了。这个Controller用于将产品归类,并产生归类后的产品列表页面。它的名字叫store。
现在我们创建这个Controller:
执行这个命令之后,我们需要的关于store的文件就都创建好了。
通过观察创建后的文件和内容,我们知道上面命令中最后的那个index是告诉generate生成store的Controller的源码文件时,同时生成一个叫index的方法,以便后面使用。
接下来,我们想要在store/index的页面上显示从所有products中找到的参品列表。首先我们要取得搜索到的产品对象。所以,我们需要在store_controller.rb文件的index方法中添加取得对象列表的代码。
从上面的代码可以看到,搜索的工作其实是Product类中的find_products_for_sale方法来完成的。但是我们现在还没有这个方法。那么我们就需要在modules/product.rb文件中添加这个方法。
这里,我们定义该方法时,前面添加了“self.”是为了使这个方法成为类方法,而不是一个实例方法。因为我们在调用的时候实际上是通过Product这个类型来调用的。
这个方法中的处理实际上只有一行,使用了Rails的find方法。其中参数“:all”是说明我们需要所有满足条件的记录行。而“:order => “title””则说明我们希望结果按照字母顺序对title进行排序。
数据都拿到了,那么接下来我们该为显示做点工作了。我们将在app/views/store/index.html.erb文件中添加我们的显示代码。具体代码如下:
(注:<%=h ... %>中的h()方法可以将中间的字符串中所有的html标记都清除掉。从安全的角度来讲,这将会是很好的。仅当你能够确定你的字符串是安全的时候,将h去掉才是对的。)
现在,我们启动我们的网站服务,在浏览器的地址栏中输入“http://localhost:3000/store”,就可以看到产品的catelog列表的实际样子了。
下图就是实际的显示效果图。不管怎么说,看起来还不错。
现在我们创建这个Controller:
引用
ruby script/generate controller store index
执行这个命令之后,我们需要的关于store的文件就都创建好了。
通过观察创建后的文件和内容,我们知道上面命令中最后的那个index是告诉generate生成store的Controller的源码文件时,同时生成一个叫index的方法,以便后面使用。
接下来,我们想要在store/index的页面上显示从所有products中找到的参品列表。首先我们要取得搜索到的产品对象。所以,我们需要在store_controller.rb文件的index方法中添加取得对象列表的代码。
def index @products = Product.find_products_for_sale end
从上面的代码可以看到,搜索的工作其实是Product类中的find_products_for_sale方法来完成的。但是我们现在还没有这个方法。那么我们就需要在modules/product.rb文件中添加这个方法。
def self.find_products_for_sale find(:all, :order => "title") end
这里,我们定义该方法时,前面添加了“self.”是为了使这个方法成为类方法,而不是一个实例方法。因为我们在调用的时候实际上是通过Product这个类型来调用的。
这个方法中的处理实际上只有一行,使用了Rails的find方法。其中参数“:all”是说明我们需要所有满足条件的记录行。而“:order => “title””则说明我们希望结果按照字母顺序对title进行排序。
数据都拿到了,那么接下来我们该为显示做点工作了。我们将在app/views/store/index.html.erb文件中添加我们的显示代码。具体代码如下:
<h1>Your Pragmatic Catalog</h1> <% for product in @products -%> <div class="entry"> <%= image_tag(product.image_url)%> <h3><%=h product.title%></h3> <%= product.description %> <div class="price-line"> <span class="price"><%= product.price %></span> </div> </div> <% end %>
(注:<%=h ... %>中的h()方法可以将中间的字符串中所有的html标记都清除掉。从安全的角度来讲,这将会是很好的。仅当你能够确定你的字符串是安全的时候,将h去掉才是对的。)
现在,我们启动我们的网站服务,在浏览器的地址栏中输入“http://localhost:3000/store”,就可以看到产品的catelog列表的实际样子了。
下图就是实际的显示效果图。不管怎么说,看起来还不错。
发表评论
-
Agile Web Development with Rails 3nd Edition学习笔记-隐藏空的购物车
2010-04-29 23:19 1002到现在位置,我们已经完成了产品列表和购物车功能。虽然看起来已经 ... -
Agile Web Development with Rails 3nd Edition学习笔记-高亮显示改变
2010-04-28 22:24 831当客户点击了“Add to Cart“按钮之后,购物车的数据改 ... -
Agile Web Development with Rails 3nd Edition学习笔记-创建一个基于Ajax的购物车
2010-04-27 22:59 901上篇笔记中,我们通过partial把购物车信息放到了index ... -
Agile Web Development with Rails 3nd Edition学习笔记-使用Ajax将购物车放入Sidebar
2010-04-27 00:38 1013之前,当用户点击了“Add to Cart“按钮之后,页面会跳 ... -
Agile Web Development with Rails 3nd Edition学习笔记-完成购物车
2010-04-26 22:41 829这一篇,我们来完成我们的购物车的制作吧。 首先,为了客户能够很 ... -
Agile Web Development with Rails 3nd Edition学习笔记-错误处理
2010-04-26 22:07 796这一部分其实东西很少,这里不做过多的描述,仅仅是记录下来,以便 ... -
Agile Web Development with Rails 3nd Edition学习笔记-创建更智能的购物车
2010-04-25 17:05 770上篇笔记我们已经让我们的网站能够保存客户选购的产品了,但是,似 ... -
Agile Web Development with Rails 3nd Edition学习笔记-创建购物车
2010-04-23 22:06 856上篇笔记中,我们为保 ... -
Agile Web Development with Rails 3nd Edition学习笔记-把Sessions放进数据库
2010-04-21 22:21 988depot在线商店需要一个能保存用户选购的各种各样的商品的地方 ... -
Agile Web Development with Rails 3nd Edition学习笔记-格式化价格和添加购物按钮
2010-04-19 22:42 1007这篇只有很少的一点内 ... -
Agile Web Development with Rails 3nd Edition学习笔记-创建页面布局模板
2010-04-19 01:32 972典型的网站一般都具有 ... -
Agile Web Development with Rails 3nd Edition学习笔记-美化我们的程序
2010-04-18 18:37 998我们的程序现在显示出来的画面还是那么的原始和难看,接下来我们要 ... -
Agile Web Development with Rails 3nd Edition学习笔记-为数据增加校验处理
2010-04-18 00:23 952数据的校验是在model ... -
Agile Web Development with Rails 3nd Edition学习笔记-向数据库表追加字段
2010-04-18 00:07 892我们可以使用migration工具在存在的数据库表中追加字 ... -
Agile Web Development with Rails 3nd Edition学习笔记-创建Depot工程
2010-04-17 21:21 893开始学习ROR了,由于在开始跟着书做这个Depot工程 ...
相关推荐
Agile Web Development with Rails 3nd Edition beta
Agile Web Development with Rails 3nd Edition Beta
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 ,...
Agile Web Development with Rails 5 英文无水印原版pdf pdf所有页面使用FoxitReader、PDF-XChangeViewer、SumatraPDF和Firefox测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书...
Pragmatic - Agile Web Development with Rails 2ndPragmatic - Agile Web Development with Rails 2ndPragmatic - Agile Web Development with Rails 2ndPragmatic - Agile Web Development with Rails 2...
Agile Web Development with Rails 2nd Edition
Agile Web Development with Rails 2nd Edition源码
Agile Web Development with Rails
Agile Web Development with Rails (PDF)
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的人很有用
没什么好介绍的beta版,pdf 第四版,包括Rails 3的内容。
Agile Web Development with Rails.
Agile Web Development with Rails 1-14节_ppt(老师发的修正版)
Agile Web Development with Rails (4th edition).pdf
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 4th edition正式版的对应源代码 就是一些Rails3的项目程序代码