美文网首页ruby on rails
Rails敏捷开发学习笔记(持续更新)

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

作者: 洗阳光 | 来源:发表于2015-12-10 22:31 被阅读255次

    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

    相关文章

      网友评论

        本文标题:Rails敏捷开发学习笔记(持续更新)

        本文链接:https://www.haomeiwen.com/subject/ridyhttx.html