记录学习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
分享到:
相关推荐
综上所述,这个压缩包提供的Depot项目是一个典型的Rails应用实例,适合初学者了解Rails框架的基本结构和敏捷开发流程。通过研究源码,开发者可以学习到如何组织代码、设置数据库、编写控制器逻辑、创建视图模板以及...
- **MySQL的介绍和安装**:文档提到了MySQL数据库,这是Rails应用中常用的一个关系型数据库管理系统。介绍了MySQL的下载地址`***`。 - **数据库配置**:在Rails中,数据库的配置通常涉及模型的生成,以及在配置文件...
《Web开发敏捷之道——应用Rails进行敏捷Web开发》是一本深度探讨如何利用Ruby on Rails框架进行高效、敏捷的Web应用程序开发的专业书籍。该书涵盖了从初学者到高级开发者所需的各种知识,旨在帮助读者掌握敏捷开发...
- **ActiveResource**:这是一个用于客户端访问RESTful服务的库,使得Rails应用能够轻松地与其他RESTful服务进行交互。 总之,REST不仅仅是一种开发风格,更是一种设计理念,它提倡通过标准化的接口来构建灵活、可...
《应用Rails进行敏捷Web开发》中文第三版是针对Ruby on Rails框架的一本详尽指南,主要聚焦于Rails 2.2.2版本。Ruby on Rails(简称Rails)是一款基于Ruby编程语言的开源Web应用程序框架,它遵循“Don't Repeat ...
- **增量式开发**:这是一种迭代式的开发方式,每完成一个小目标后就进行一次发布,以此不断改进和完善应用。 - **功能模块划分**: - **商品维护**:通过几个迭代逐步实现商品的增删改查功能。 - **分类显示**:...
Ruby on Rails(简称RoR)是一种基于Ruby编程语言的开源框架,用于快速开发高效、优雅的Web应用程序。它遵循模型-视图-控制器(MVC)架构模式,强调DRY(Don't Repeat Yourself)原则,使得代码简洁且可重用性高。...
10. **敏捷开发**:敏捷开发是一种迭代、增量的软件开发方法,强调灵活性和客户满意度,书中会介绍如何在Rails项目中应用敏捷实践,如持续集成、短迭代周期和用户故事。 通过研究和运行"depot"源代码,你可以亲身...
- **集成Facebook API**:详细讲解如何将Facebook API集成到Rails应用中,实现用户登录、数据同步等功能。 ##### 3. 成功策略:营销与优化 - **增长黑客**:分享关于如何利用增长黑客技巧增加应用用户数量的方法。...
`GoOnRails`旨在利用Rails的快速开发能力和Go的高性能,提供一个混合式的开发模式。通过这种方式,你可以充分利用两种语言的优势,为复杂的Web应用构建高效且易于维护的后端架构。 总的来说,`GoOnRails`是一个创新...
Rails,全称Ruby on Rails,是由David Heinemeier Hansson创建的一个开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,强调使用简洁的代码和DRY(Don't Repeat Yourself)原则,使得开发过程更加高效且...
总结来说,这个示例展示了如何在Rails应用程序中有效地利用React进行前端开发,以及如何通过webpack进行模块管理和优化。这种混合开发模式结合了Rails的强大后端能力和React的高效前端渲染,为现代Web应用提供了强大...
总之,"rails应用--导航栏实例工程"是一个综合性的教程,涵盖了Rails开发中的多个关键环节:路由设置、控制器创建、视图渲染、模型定义、以及后台管理工具的使用。通过实践这个实例,开发者可以深入理解Rails的工作...
在《Rails 敏捷开发实践》一书中,作者介绍了如何将敏捷方法论应用于 Ruby on Rails 开发过程中: 1. **原型设计**:通过快速创建原型来验证想法,收集反馈。 2. **项目管理**:使用敏捷工具和技术来跟踪进度和管理...
Ruby-APITaster是一款强大的工具,专为Rails应用的API测试和可视化设计。它使得开发者能够迅速地对API接口进行互动式测试,从而确保API的功能正确性和性能稳定性。这款工具的出现,极大地简化了API测试过程,提高了...
- **增量式开发**: 逐步增加功能,每次迭代都交付可用的产品。 - **快速迭代**: 快速反馈和调整方向。 - **迭代A1**: 创建基本应用结构。 - **迭代A2**: 添加必要的字段。 - **迭代A3**: 逻辑验证。 - **迭代A4**: ...
Ruby on Rails,简称Rails,是基于Ruby编程语言的一个开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和可读性,同时强调“约定优于配置”的原则。在本实例开发中,我们将探讨如何...
Ruby on Rails,简称Rails,是由David Heinemeier Hansson创建的一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和可读性。在这个开发环境包中,我们拥有Ruby ...