当前位置: 代码迷 >> 综合 >> Agile Web Development with Rails第七章笔记——任务B:验证
  详细解决方案

Agile Web Development with Rails第七章笔记——任务B:验证

热度:51   发布时间:2023-12-09 08:40:40.0


在第六章的基础上,这一章的任务是使应用程序变得更加坚固——以确保数据中发生的错误永远都不会提交给数据库。

迭代B:验证

目标:

1、字段的标题、描述以及图像的URL不是空的

2、价格是一个有效的数字,且不少于0.01

3、标题在所有商品中是唯一的

4、图像的URL看起来是有效的

模型层是放置验证代码的理想位置。

根据以上4点目标,在脚手架生成的模型层文件中做出相应修改。

模型文件位置:


初始文件内容如下:


在该文件中添加验证代码:

[ruby] view plain copy
  1. class Product < ActiveRecord::Base  
  2.   attr_accessible :description:image_url:price:title  
  3.   validates :title:description:image_url:presence => true  
  4.   validates :price:numericality => { :greater_than_or_equal_to => 0.01}  
  5.   validates:title:uniqueness => true  
  6.   validates : image_url, :format => {  
  7.   :with => %r{\.(gif|jpg|png)$}i,  
  8.   :message => 'must be a URL for GIF,JPG or PNG image.'  
  9. }  
  10. end  

validates方法是标准的Rails验证器,它会根据一个或多个属性来验证一个或多个模型字段。

:presence => true控制字段值非空

:numericality => {:greater_than_or_equal_to => 0.01}控制字段值是有效正数并且大于0.01

:uniqueness => true控制该字段不可重复

:format => {:with => %r{\.(gif|jpg|png)$}i}控制字段格式

运行效果:

1、字段的标题、描述以及图像的URL不是空的



2、价格是一个有效的数字,且不少于0.01


3、标题在所有商品中是唯一的


4、图像的URL看起来是有效的

  相关解决方案