`
momoliu
  • 浏览: 24410 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

迭代式开发rails应用(一)

 
阅读更多

记录学习rails的过程。应用来自《web敏捷开发之道——应用rails进行敏捷web开发》

1. 创建app

rails new test-depot --skip-bundle

cd test-depot

bundle install --local

修改GemFile,添加gem 'thin'

 

2.创建数据库表product

./script/rails generate scaffold product title:string description:string image_url:string 

rake db:migrate

3.启动服务
./script/rails s thin -p 4567

通过http://127.0.0.1:4567/products进行访问。可以通过页面中提供的create表单操作数据库。
 
4.增量修改数据库表结构
为数据库表product添加一列price。
./script/rails generate migration add_column
invoke  active_record
create    db/migrate/20121210082608_add_column.rb
 修改db/migrate/20121210082608_add_column.rb
class AddColumn < ActiveRecord::Migration
  def up
    add_column :products,:price,:decimal,:precision=>8,:scale=>2,:default=>0
  end

  def down
    remove_column :products,:price
  end
end
 运行rake db:migrate 
==  AddColumn: migrating ======================================================
-- add_column(:products, :price, :decimal, {:default=>0, :precision=>8, :scale=>2})
   -> 0.0051s
==  AddColumn: migrated (0.0052s) =============================================
由于添加了price列,但views中却没有实时添加上该字段,需要修改以下文件:
_form.html.erb edit.html.erb  index.html.erb new.html.erb   show.html.erb
照着其他字段的方法添加上price字段。 
最后在app/models/product.rb添加上price字段。
5.添加数据验证。
修改app/models/product.rb如下:
class Product < ActiveRecord::Base
  attr_accessible :description, :image_url, :title,:price
  validates_presence_of :title,:description,:image_url
#  validates_numericality_of :price
  validates_uniqueness_of :title
  validates_length_of :title,:minimum => 10
  validate :price_must_be_at_least_a_cent
  validates_format_of :image_url,:with=>%r{\.(gif|png|jpg)$}i,:message=>"must be a URL ForGIF,JPG or PNG image"
  def price_must_be_at_least_a_cent
    errors.add(:price,"should be at least 0.01") if price.nil?||price < 0.01
  end
end
 6.访问4567/products并填写数据如下:


7.添加css和一些样式
在app/assets目录下,有对应的目录如下:
images      
javascripts
stylesheets
只需要在这些文件目录下添加上对应的图片、js代码或css就可以了。

添加上我们的样式之后


 
 附件为test-depot,为整个应用程序

  • 大小: 35.9 KB
  • 大小: 73.6 KB
分享到:
评论

相关推荐

    Web开发敏捷之道-应用Rails进行敏捷Web开发(第三版)

    在演示的过程中,作者真实地再现了一个完整的迭代式开发过程,让读者亲身体验实际应用开发中遇到的各种问题、以及Rails如何有效解决这些问题。在随后的“Rails框架”部分中,作者深入介绍了Rails框架的各个组成部分...

    Web开发敏捷之道-应用Rails进行敏捷Web开发-第三版.rar

    第2章 Rails应用的架构 9 2.1 模型,视图,以及控制器 9 2.2 Active Record:Rails的模型支持 11 2.3 Action Pack:视图与控制器 13 第3章 安装Rails 15 3.1 购物清单 15 3.2 Windows上的安装 15 3.3 Mac OS X上的...

    web开发_ruby_on_rails

    础Rails 使用原理(类似15.6 节中),给出普通Web 应用程序模式的Rails 实现(15.4 节 和15.8 节)并且讨论如何在Rails 内部使用标准的Ruby 工具(15.22 节和15.23 节)。 不谈其质量和流行程度,Rails 并没有为Web ...

    Ruby on Rails Web开发之旅.pdf【第二部分】

    本书注重实用性,适合初学者迅速掌握Ruby开发工具的使用方法,为希望深入了解Rails框架并建立健壮网络应用的开发人员提供强大的技术支持。 目录 第1章 Ruby on Rails简介 1.1 历史 1.2 开发原则 1.2.1 惯例优先 ...

    Ruby on Rails Web开发之旅.pdf【第一部分】

    《Ruby.on.Rails.Web开发之旅》,作者:【德】Patrick Lenz,翻译:王德民、刘昕、裴立秋,出版社:人民邮电出版社,ISBN:9787115188526,PDF 格式,大小 144 Mb,被压缩为 3 部分,本资源是第一部分;第二部分下载...

    alt-rails:大型Rails应用程序的设计架构模式

    围绕maintan的最佳实践,工具和方法的研究项目,并开发大型Ruby on Rails应用程序 介绍 受到社区的启发。 该社区开始是对和更大的.NET Framework社区建议的工具和指南日益感到沮丧的答案。 在Ruby on Rails社区中,...

    Ruby on Rails Web开发之旅.pdf【第三部分】

    本书注重实用性,适合初学者迅速掌握Ruby开发工具的使用方法,为希望深入了解Rails框架并建立健壮网络应用的开发人员提供强大的技术支持。 目录 第1章 Ruby on Rails简介 1.1 历史 1.2 开发原则 1.2.1 惯例优先 ...

    Rails预加载程序Spring-Rails.zip

    Spring是Rails的预加载器。Spring 能够通过保持应用运行在后台,来提升开发模式下的速度。使得不需要在执行test,rake task以及migration时每次都加载。 标签:Spring

    Rails API文档

    Ruby on Rails 是一个用于开发数据库驱动的网络应用程序的完整框架。Rails基于MVC(模型- 视图- 控制器)设计模式。从视图中的Ajax应用,到控制器中的访问请求和反馈,到封装数据库的模型,Rails 为你提供一个纯Ruby...

    rails-k8s-demoapp:与Kubernetes和Helm一起部署的示例Rails应用程序

    最小的示例应用程序,以演示如何使用Docker,Kubernetes和Helm开发Rails应用程序。 有关详细信息,请参见。 使用Docker Compose启动预览模式 先决条件 Docker,Docker撰写 $ git clone ...

    rorvswild:Ruby on Rails应用监视:Rails开发人员的性能和异常见解

    狂野狂暴 RoRvsWild是Ruby,可以监视Ruby on Rails应用程序中的性能和异常。 这种宝石具有双重模式,可以开发和生产。 无需帐户即可使用它来监视您的请求在开发环境中的性能。 也可以通过上的帐户在生产和暂存环境中...

    docker-rails-demo:用于Rails,Docker和Webpack的演示应用程序

    Rails,Docker和Webpacker是一个很棒的组合,例如用于开发React / Rails应用程序。 该演示应用程序使用 , 和 。 在开发模式下,它使用进行实时Java重载。 作为数据库,它使用 。 首先,构建用于开发的应用程序 ...

    跨越边界:Rails迁移

    目前,持久性框架使用两种方法中的一种:映射或包装 。要有效地管理涉及持久性域模型的应用程序变化,必须协调数据、模式和模型...这篇文章研究的Rails模式迁移是一种把每个数据库的模式变化与基本对象模型分离的思想。

    design-patterns-sample:我们在VandyHacks 2015上的演示的代码示例。此存储库演示了如何在iOS,Android和Rails中应用和使用少量设计模式

    该存储库将演示如何将设计模式应用于iOS,Android和Rails框架,并使您对何时以及如何使用这些模式有更深入的了解。 设计模式 以下列表是设计模式的汇总,我们提供了相应的解释和代码示例。 辛格尔顿 参考: 意图 ...

    rails_5_api_tutorial:使用Swagger UI构建Perfect Rails 5 API Only应用程序并记录基于Rails的REST API

    构建Perfect Rails 5 API Only应用得益于作为Rails 5核心一部分提供的新的rails-api gem,Rails现在是快速,轻松构建精简API的理想选择。 到目前为止,可以说,在Ruby中创建API的最佳选择是Grape,尽管Grape仍然是一...

    rails-api-base:Rails 5 RESTful API模板

    一个讨论Rails设置和开发的api示例。 从其开始项目的基本模板。 规格摘要: RESTful API。 api版本。 Notes应用示例。 模式和良好做法。 用户管理。 版本到期。 国际化。 秘密api密钥。 Rspec测试。 ...

    CSDN_敏捷开发相关文档全收集_5

    公司项目需要利用敏捷开发模式进行开发,故在CSDN上进行相关资料的查找搜集。27个资料,293 MB,花费了150多积分.... 软件开发流程与质量管理-迭代式开发V1.1.doc 需求开发管理流程的解释和开发流程图.doc

Global site tag (gtag.js) - Google Analytics