这一部分其实东西很少,这里不做过多的描述,仅仅是记录下来,以便今后查询使用。
以add_to_cart方法为例,当该方法收到一个错误的产品id时,会得到一个ActiveRecord::RecordNotFound错误。对应的包含错误处理的代码如下:
def add_to_cart
product = Product.find(params[:id])
@cart = find_cart
@cart.add_product(product)
rescue ActiveRecord::RecordNotFound
logger.error("Attempt to access invalid product #{params[:id]}" )
flash[:notice] = "Invalid product"
redirect_to :action => 'index'
end
"rescue"的部分是捕获错误并进行处理的代码。这部分代码的意义描述如下:
第一行:将出错信息写入Log文件
第二行:把出错信息保存到flash对象中。这个对象以哈希的方式保存Error消息。并且这个对像被保存在Session中。我们可以在需要的时候从它里面取出Error消息,显示在用户页面上。
第三行:将页面重定向到index页面。
要将flash显示在用户页面上,可采用如下的方法。
在depot/app/views/layouts/store.html.erb文件的<div id="main">...</div>节点开始部分加入如下代码:
<% if flash[:notice] -%>
<div id="notice"><%= flash[:notice] %>
<% end -%>
启动服务,在index页面任意产品处点击“Add to Cart”按钮,显示add_to_cart页面后,把浏览器地址栏中的地址“http://localhost:3000/store/add_to_cart/<id>”修改为“http://localhost:3000/store/add_to_cart/wibble”,点击刷新。你将会看到页面会自动回到index页面,而不是出错页面。同时在index页面中第一个产品之上会看到“Invalid product”的字样。也就是我们在上面代码中写的Error消息的内容。
分享到:
相关推荐
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 (PDF)
Agile Web Development with 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的人很有用
没什么好介绍的beta版,pdf 第四版,包括Rails 3的内容。
Agile Web Development with 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...
agile web development with rails 4th edition正式版的对应源代码 就是一些Rails3的项目程序代码
正式版 已经上传, 请到下面链接下载 http://download.csdn.net/source/3432550