Web开发敏捷之道学习(一)

本文介绍如何使用Rails创建商品管理程序,包括通过seed.rb文件设置样式表、布局配置、内置特性如列表交替颜色及字段截断等。同时,还讲解了如何进行数据验证确保数据完整性。

第六章,创建商品维护程序 

收获:

1/通过seed.rb文件设置样式表

Product.delete_all

 Product.create(:title=> 'Programming Ruby 1.9',

  :description =>

  %{<p>

  Ruby is thefastest growing and most exciting dynamic language out there.Ifyou need to getworking programs delivered fast,you should add Ruby to your

 toolbox.

  </p>},

  :image_url =>'/images/ruby.jpg',

  :price =>49.50)

2/样式表的配置:将depot.css文件放在assets/stylesheets文件夹后,在application.css加入以下语句:

 * You're free toadd application-wide styles to this file and they'll appear at thetop of the

 * compiledfile, but it's generally better to create a new file per stylescope.

 *

 *=requiredepot.css

3/layout/application.html.erb为整个应用程序创建标准的页面环境.stylesheet_link_tag创建一个HTML<link>b标签,标签会从stylesheets目录中加载样式表。

 <head>

  <title>PragprogBooks Online Store</title>

   <%=stylesheet_link_tag "scaffold" %>

   <%=stylesheet_link_tag "depot", :media => "all"%>

   <%=javascript_include_tag :defaults %>

   <%=csrf_meta_tags %>

 </head>

4/Rails内置特性:

 >清单的行背景颜色交替变换:cycle帮助函数通过将每行的CSS类设置为list_evenlist_line_odd,并在两个连续行之间自动切换样式名称。

 >truncate用来显示描述字段的前80个字符,在调用truncate之前,要调用strip_tags去除字段中的HTML标签

 >单击这个链接时会让浏览器弹出一个对话框,要求确认删除该商品

<table>

<%@products.each do |product|%>

<tr class="<%= cycle('list_line_odd','list_line_even')%>">

<td>

<%=image_tag(product.image_url, :class => 'list_image')%>

</td>

<td class="list_description">

<dl>

<dt><%=product.title%></dt>

<dd><%=truncate(strip_tags(product.description),

:length =>80)%></dd>

</dl>

</td>

<td class="list_actions">

<%=link_to 'show',product%><br/>

<%=link_to 'Edit',edit_product_path(product)%><br/>

<%=link_to 'Destroy',product,

:confirm => 'Are you sure?',

:method => :delete%>

</td>

</tr>

<%end%>

</table>

5/回滚迁移:$rakedb:rollback

模式会变回以前的样子,对应表会消失。再次调用rakedb:migrate将重新创建它

6/验证(在写入数据库之前对其进行检查,使得数据库不会因数据二损坏)

  app/models/products.rb中添加以下代码:

   validates :title,:description, :image_url, :presence =>true

validates是标准的Rails验证器,根据一个或多个条件来验证一个或多个模型字段。

presence=>true让验证器核实每个已命名的字段都存在,且内容不为空

  validates :price,:numericality => {:greater_than_or_equal_to =>0.01}

#验证价格是一个有效的正数,数据库只存储小数点后的两位数字,所以传参为0.01

  validates:image_url, :format => {

   :with =>%r{\.(gif|jpg|png)$}i,

   :message =>'must be a URL for GIF,JPG or PNG image.'

  }

#\表示全匹配,$表结束符,.表示匹配点

 
英文新版:Agile Web Development with Rails, 4th Edition(For Rails 3.1 & 3.2) 内容简介 《Web开发敏捷:应用Rails进行敏捷Web开发(第3版)》主要分为两大部分。在“构建应用程序”部分中,读者将看到个完整的“在线购书网站”示例。在随后的“Rails框架”部分中,作者深入介绍了Rails框架的各个组件。除了上述两部分外,对Rails缺乏了解的读者应该首先阅读“起步”部分,通过个最简单的应用示例感性了解这个时下热门的web框架。不熟悉Ruby的读者应该阅读“附录”部分中的“Ruby简介”,以便了解Ruby的基本语法与常见用法。 《Web开发敏捷:应用Rails进行敏捷Web开发(第3版)》第1版曾荣获Jolt大奖“最佳技术图书”奖。在前两版的内容架构基础上,第3版增加了对Rails 2中新特性和最佳实践的内容介绍。相比第2版中的内容,Rails 2增加了REST、资源、轻量级web service等新特性。《Web开发敏捷:应用Rails进行敏捷Web开发(第3版)》涵盖了这些全新的内容,因此能更好地体现出Rails框架的发展现状。 整体而言,全书既有直观的实例,又有深入的分析,同时还涵盖了web应用开发中各方面的相关知识,堪称部内容全面而又深入浅出的佳作。 编辑推荐 《Web开发敏捷:应用Rails进行敏捷Web开发(第3版)》:Ruby on Rails是个全套的MVC web框架,它能帮你开发高质量又美观的web应用,而且开发速度快得出乎你想象。你只须集中精力于应用程序本身,Rails就会帮你搞定切琐事。你甚至不需要写哪怕行JavaScript代码,就能开发出支持各种JavaScript功能的应用程序。这几年来,Rails直在发展,这《Web开发敏捷:应用Rails进行敏捷Web开发(第3版)》也直随它起发展。和前两版样,我们还是先带领读者步步构造个真实的应用程序,然后深入介绍Rails内建的各种特性;和前两版不同,我们在第3版中重点介绍了Rails对“资源”的支持,并推荐了当今Rails开发者们的最佳实践。 在《Web开发敏捷:应用Rails进行敏捷Web开发(第3版)》中,你将可以…… ·跟随个完整的教程,亲手编写个基于web的在线商店; ·了解Rails如何消除烦人的配置与琐事; ·学会如何开发国际化的应用程序; ·看到如何在应用程序中融入Ajax、RES'T、webservices和e-maJl处理; ·在编写应用程序的同时,用内建的单元测试、功能测试和集成测试框架来测试应用程序; ·还有,轻松又安全地部署应用程序。 《Web开发敏捷:应用Rails进行敏捷Web开发(第3版)》基于:Rails2,在此前版本的基础上做了大量修订。 作者简介 作者:(美国)鲁比(Sam Ruby) (美国)托马斯(Dave Thomas) (美国)汉森(David Heinemeier Hansson) 译者:林芷薰 合著者:透明 鲁比(Sam Ruby),是位杰出的软件开发者,他为Apache软件基金会下属的很多开源软件项目做出过重要的贡献,他主持的Atom web feed标准和广为使用的厂eedvalidatororg web service对web feeds的标准化起到了重要作用。他目前是IBM“创新技术组”的资深技术人员。 托马斯(Dave Thomas),作为《敏捷宣言》的起草人之,他理解敏捷。作为《Programming Ruby》的作者,他理解Ruby。作为位活跃的Rails开发者,他理解Rails。 汉森(David Heinemeier Hansson),是Rails框架的缔造者。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值