二、使用rails3.0自带的数据检查功能检查输入数据

接着上面的文章、继续、打开app/models/product.rb文件

1 class Product < ActiveRecord::Base
2 end

在这个文件里可以加入些语句进行输入数据的约束、首先加入

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

这句是打开各个字段的约束为非空、这么讲吧、就是把title、description、image_url、这几个字段检查是否为非空、

再来、

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

这句就是要求price的值大于或等于0.01、

再来

validates :title, :uniqueness => true

这句是验证title字段不能重复、

1 validates :image_url, :format => {
2 :with => %r{\.(gif|jpg|png)$}i,
3 :message => 'must be a URL for GIF, JPG or PNG image.'
4 }

最后这个是约束image_url的、通过一段正则表达式来处理、要求格式必须为gif/jpg/png、判断准则便是最后一个小数点必须是这些扩展名、

OK、大功告成、所以完整的代码应该是这样的

class Product < ActiveRecord::Base
  validates :title, :description, :image_url, :presence => true
  validates :price, :numericality => {:greater_than_or_equal_to => 0.01}
  validates :title, :uniqueness => true
  validates :image_url, :format => {
    :with    => %r{\.(gif|jpg|png)$}i,
    :message => 'must be a URL for GIF, JPG or PNG image.'
  }
end

迩再试试打开http://localhost:3000/products页面直接按提交?哈哈






posted @ 2011-10-12 15:12  klobodnf  阅读(309)  评论(0编辑  收藏  举报