免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2188 | 回复: 2
打印 上一主题 下一主题

Depot应用程序整理之基础整理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-02-18 16:21 |只看该作者 |倒序浏览
转:lonelystarxing's blog

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文件中

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

如:
  1. def self.up
  2.          add_column :products, :price, :decimal, :precision=>8,  :scale=>2,  :default=>0
  3.       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文件,并且自动调用
  1. <%= stylesheet_link_tag 'scaffold'%>
复制代码
你也可以自己重新添加,只需将文件名存放在'scaffold'之后,并以“,”隔开

论坛徽章:
0
2 [报告]
发表于 2011-02-18 16:35 |只看该作者
谢谢村艹。

论坛徽章:
0
3 [报告]
发表于 2011-02-21 15:53 |只看该作者
回复 2# 2gua


    见外了不是!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP