- 浏览: 29346 次
- 性别:
- 来自: 苏州
最新评论
Agile Web Development with Rails 3nd Edition学习笔记-向数据库表追加字段
- 博客分类:
- Ruby and Rails
我们可以使用migration工具在存在的数据库表中追加字段:
命令执行的命令行显示如下:
从命令行的显示和数据库中products表的实际数据来看,这条命令执行之后并不真的在数据库的表格中增加一个叫做“price”的字段。而仅仅是生成一个新的名为“20100417140530_add_price_to_product.rb”的文件,以供后面执行“rake db:migrate”命令时使用。
生成的migrate文件的内容为:
这里up方法用来向products表中追加price字段,而down方法则是从products表中除去该字段。
我们可以通过在up方法中追加precision、scale和default来限定price的值域范围,修改后的内容为:
其中,“:precision => 8”表示price可以使用8个数字;“:scale => 2”表示小数点后可以有2位数字;“:default => 0”表示默认值为0。
这样price的值域范围就是[-999999.99, 999999.99],而默认值为0。
现在,我们把这项修改提交到我们的数据库中:
执行该命令后用MySQL的Table Editor查看products表的字段,可以看到已经增加了price字段。并且该字段的信息如下:
再看schema_migrations表中的数据,version字段已经添加一条值为“20100417140530”的记录。
(注:根据书中的说明,在定义金融类型的字段时,应使用decimal类型,而不是float类型。因为float类型有进位问题,不可以用在金融计算上。)
要显示追加的字段,就需要同时修改depot/app/views/products目录下的4个erb文件,添加相应的字段描述。具体的添加内容参照已有的字段写就好了,这里不再赘述。
问题:
没有个简单的方法吗?在一个表中追加一个字段还好啦,要是对多个表进行了大量的追加操作,那光添在erb中添加这些字段的显示代码就很郁闷了。
引用
ruby script/generate migration add_price_to_product price:decimal
命令执行的命令行显示如下:
引用
exists db/migrate
create db/migrate/20100417140530_add_price_to_product.rb
create db/migrate/20100417140530_add_price_to_product.rb
从命令行的显示和数据库中products表的实际数据来看,这条命令执行之后并不真的在数据库的表格中增加一个叫做“price”的字段。而仅仅是生成一个新的名为“20100417140530_add_price_to_product.rb”的文件,以供后面执行“rake db:migrate”命令时使用。
生成的migrate文件的内容为:
class AddPriceToProduct < ActiveRecord::Migration def self.up add_column :products, :price, :decimal end def self.down remove_column :products, :price end end
这里up方法用来向products表中追加price字段,而down方法则是从products表中除去该字段。
我们可以通过在up方法中追加precision、scale和default来限定price的值域范围,修改后的内容为:
class AddPriceToProduct < ActiveRecord::Migration def self.up add_column :products, :price, :decimal, :precision => 8, :scale => 2, :default => 0 end def self.down remove_column :products, :price end end
其中,“:precision => 8”表示price可以使用8个数字;“:scale => 2”表示小数点后可以有2位数字;“:default => 0”表示默认值为0。
这样price的值域范围就是[-999999.99, 999999.99],而默认值为0。
现在,我们把这项修改提交到我们的数据库中:
引用
rake db:migrate
执行该命令后用MySQL的Table Editor查看products表的字段,可以看到已经增加了price字段。并且该字段的信息如下:
Column Name | Data Type | NOT NULL | AUTO INC | Flags | Default Value | Comments |
price | DECIMAL(8,2) | false | false | ‘0.00’ |
再看schema_migrations表中的数据,version字段已经添加一条值为“20100417140530”的记录。
(注:根据书中的说明,在定义金融类型的字段时,应使用decimal类型,而不是float类型。因为float类型有进位问题,不可以用在金融计算上。)
要显示追加的字段,就需要同时修改depot/app/views/products目录下的4个erb文件,添加相应的字段描述。具体的添加内容参照已有的字段写就好了,这里不再赘述。
问题:
没有个简单的方法吗?在一个表中追加一个字段还好啦,要是对多个表进行了大量的追加操作,那光添在erb中添加这些字段的显示代码就很郁闷了。
发表评论
-
Agile Web Development with Rails 3nd Edition学习笔记-隐藏空的购物车
2010-04-29 23:19 1000到现在位置,我们已经完成了产品列表和购物车功能。虽然看起来已经 ... -
Agile Web Development with Rails 3nd Edition学习笔记-高亮显示改变
2010-04-28 22:24 827当客户点击了“Add to Cart“按钮之后,购物车的数据改 ... -
Agile Web Development with Rails 3nd Edition学习笔记-创建一个基于Ajax的购物车
2010-04-27 22:59 898上篇笔记中,我们通过partial把购物车信息放到了index ... -
Agile Web Development with Rails 3nd Edition学习笔记-使用Ajax将购物车放入Sidebar
2010-04-27 00:38 1011之前,当用户点击了“Add to Cart“按钮之后,页面会跳 ... -
Agile Web Development with Rails 3nd Edition学习笔记-完成购物车
2010-04-26 22:41 827这一篇,我们来完成我们的购物车的制作吧。 首先,为了客户能够很 ... -
Agile Web Development with Rails 3nd Edition学习笔记-错误处理
2010-04-26 22:07 793这一部分其实东西很少,这里不做过多的描述,仅仅是记录下来,以便 ... -
Agile Web Development with Rails 3nd Edition学习笔记-创建更智能的购物车
2010-04-25 17:05 766上篇笔记我们已经让我们的网站能够保存客户选购的产品了,但是,似 ... -
Agile Web Development with Rails 3nd Edition学习笔记-创建购物车
2010-04-23 22:06 853上篇笔记中,我们为保 ... -
Agile Web Development with Rails 3nd Edition学习笔记-把Sessions放进数据库
2010-04-21 22:21 987depot在线商店需要一个能保存用户选购的各种各样的商品的地方 ... -
Agile Web Development with Rails 3nd Edition学习笔记-格式化价格和添加购物按钮
2010-04-19 22:42 1003这篇只有很少的一点内 ... -
Agile Web Development with Rails 3nd Edition学习笔记-创建页面布局模板
2010-04-19 01:32 969典型的网站一般都具有 ... -
Agile Web Development with Rails 3nd Edition学习笔记-创建产品目录列表
2010-04-18 19:48 758按照书上的引导,我们 ... -
Agile Web Development with Rails 3nd Edition学习笔记-美化我们的程序
2010-04-18 18:37 995我们的程序现在显示出来的画面还是那么的原始和难看,接下来我们要 ... -
Agile Web Development with Rails 3nd Edition学习笔记-为数据增加校验处理
2010-04-18 00:23 950数据的校验是在model ... -
Agile Web Development with Rails 3nd Edition学习笔记-创建Depot工程
2010-04-17 21:21 891开始学习ROR了,由于在开始跟着书做这个Depot工程 ...
相关推荐
Agile Web Development with Rails 3nd Edition beta
Agile Web Development with Rails 3nd Edition Beta
Agile Web Development with Rails, 2nd Edition <br>有两份PDF文件,大小分别是7.39MB和6.55MB <br>作者: Dave Thomas , David Heinemeier Hansson , Leon Breedt , Mike Clark , James Duncan Davidson ,...
Agile Web Development with Rails 5 英文无水印原版pdf pdf所有页面使用FoxitReader、PDF-XChangeViewer、SumatraPDF和Firefox测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书...
Pragmatic - Agile Web Development with Rails 2ndPragmatic - Agile Web Development with Rails 2ndPragmatic - Agile Web Development with Rails 2ndPragmatic - Agile Web Development with Rails 2...
Agile Web Development with Rails 2nd Edition
Agile Web Development with Rails 2nd Edition源码
Agile Web Development with Rails (PDF)
Agile Web Development with Rails
Ruby on Rails helps you produce high-quality, beautiful-looking web applications quickly. You concentrate on creating the application, and Rails takes care of the details., Tens of thousands of ...
Rails敏捷开发第三版,很不错的rails入门书,对初学rails的人很有用
没什么好介绍的beta版,pdf 第四版,包括Rails 3的内容。
Agile Web Development with Rails 1-14节_ppt(老师发的修正版)
Agile Web Development with Rails.
Agile Web Development with Rails, Third Edition by Sam Ruby, Dave Thomas, David Heinemeier Hansson Rails just keeps on changing. Rails 2, released in 2008, brings hundreds of improvements, including...
Agile Web Development with Rails (4th edition).pdf
agile web development with rails 4th edition正式版的对应源代码 就是一些Rails3的项目程序代码