首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Depot应用程序收拾之基础整理

2012-12-18 
Depot应用程序整理之基础整理初学ROR,参照Agile Web Development with Rails写了一个depot? demo,现在静下

Depot应用程序整理之基础整理

初学ROR,参照Agile Web Development with Rails写了一个depot? demo,

现在静下心来整理下

?

rails2.0.2以后系统默认数据库为sqlite3,想要定义你自己顺手的数据库,使用以下命令

?? >rails depot --database=sql 即可

P:rails需要2.5以上的mysql版本

?

>ruby script/generate product title:string

自动生成products的controller、model、views 以及products表

通过rake db:migrate

或者rake db:migrate VERSION=0迁移数据即可(0为数据迁移版本号)

?

添加表中缺失字段

>ruby script/generate migration add_price_to_product price:decimal

在生成的db/migrate/20110217000002_add_price_to_price.rb文件中

可以根据个人需要对字段进行设定范围之类

如:def self.up
???????? add_column :products, :price, :decimal, :precision=>8,? :scale=>2,? :default=>0
? ? ? end

当然最后还记得迁移数据库rake,相应的views中也要记得加上price对应的显示

?

添加验证

验证代码一般放在model内,如product.rb

以下一些简单的验证

validates_presence_of? 检查置顶字段是否存在、并且值不为空

validates_numericality_of?? 检查字段是否是合法的数值

validates_uniqueness_of??? 检查字段是否唯一

validates_length_of??? 检查长度

validates_format_of??? 检查格式

当然你也可以自己编写一个方法,然后以validate? :function? 方式调用

如:validate? :price_must_be_at_least_a_cent

protected
? def price_must_be_at_least_a_cent
??? errors.add(:price,' 不得低于0.01元') if price.nil? || price<0.01
? end

//检查格式

validates_format_of :image_url,
??? :with=>%r{\.(gif|jpg|png)$}i,
??? :message=>'链接必须为GIF,JPG or PNG等格式的图片.'

?

scaffold自动生成一个scaffold.css文件,并且自动调用

<%= stylesheet_link_tag 'scaffold'%>

你也可以自己重新添加,只需将文件名存放在'scaffold'之后,并以“,”隔开

?

热点排行