您的当前位置:首页Rails敏捷开发学习笔记(持续更新)

Rails敏捷开发学习笔记(持续更新)

2024-12-13 来源:哗拓教育

Depot 电商应用程序开发

  • rails基本框架为MVC框架,关系为
URL =>router =>controller 
 ||              ||     ||
 = =  = = = =    view  model = db
  • 练习rails进行开发,在做电商页面时,我们需要做出来供给卖家管理产品的页面以及卖家展示页面,首先我们要先有产品,第一步是创建商品维护程序,可以用来添加产品

创建商品维护程序

  • Rails new depot
  • Rails generate scaffold Product title:string description:text image_url:string price:decimal

为product表创建模型model、视图view、控制器controller、迁移migrate。上述都是通过脚手架(scaffold)生成的

  • 应用迁移

通过rake db:migrate可以对数据库进行迁移,从而达到更新、撤销数据库的目的

  • 小结
    通过上面的步骤,我们初步生成了产品(Product)的展示(show)、添加(new)页面,以及展示、添加、编辑(edit)、删除(destroy)的路径,还有一个存放产品数据的表(table),里面存放着title、description、image_url和price的数据

验证和单元测试

  • 我们发现在添加产品的时候,即使没有添加标题(title)或者描述(description)等等,也可以添加产品,然而这是不允许的,所以我们需要添加验证,验证最合适的地方就是在model层(与数据层进行交互)
  • 需要验证的地方:字段不为空,价格有最小数字,标题是唯一的,图像的路径后缀要匹配,这些地方都需要在 /app/model/products.rb里添加以下变量
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, allow_blank: true, format: {
    with:    %r{\.(gif|jpg|png)\Z}i,
    message: 'must be a URL for GIF, JPG or PNG image.'
  }
end
  • 验证添加完后我们需要对我们的验证条件进行测试了,测试也分为三种,在test/文件夹里面,其中controllers是每一个动作的有效性,例如new, get index, create, edit,destroy等等,而models是测试单元的有效性,例如表单里面的字段不为空是否正确,价格最小数字,标题唯一等等,两者都需要给出有效的数据作为测试数据,最后一种是静态测试(fixtrue),通过添加静态数据,静态测试会用到其中的测试数据库来测试
  • 有用到检测测试的命令 rake test, rake test::units
显示全文