rails model数据类型

Migration column type...

Converts to MySQL field type...

Available options1

:binary

TINYBLOB, BLOB, MEDIUMBLOB, or LONGBLOB2

:limit => 1 to 4294967296 (default = 65536)2

:boolean

TINYINT(1)

-

:date

DATE

-

:datetime

DATETIME

-

:decimal

DECIMAL

:precision => 1 to 63 (default = 10) :scale => 0 to 30 (default = 0)3

:float

FLOAT

-

:integer

INT

:limit => 1 to 11 (default = 11)

:primary_key

INT(11) AUTO_INCREMENT PRIMARY KEY

-

:string

VARCHAR

:limit => 1 to 255 (default = 255)

:text

TINYTEXT, TEXT, MEDIUMTEXT, or LONGTEXT2

:limit => 1 to 4294967296 (default = 65536)2

:time

TIME

-

:timestamp

DATETIME

-

 

以下为例:

def self.up
        create_table :people do |t|
            t.column :title, :string
            t.column :first_name, :string, :null => false
            t.column :last_name, :string, :null => false
            t.column :email, :string, :limit => 100, :null => false
            t.column :telephone, :string, :limit => 50
            t.column :mobile_phone, :string, :limit => 50
            t.column :job_title, :string
            t.column :date_of_birth, :date
            t.column :gender, :string, :limit => 1
            t.column :keywords, :string
            t.column :notes, :text
            t.column :address_id, :integer
            t.column :company_id, :integer
            t.column :created_at, :timestamp
            t.column :updated_at, :timestamp
        end
    end

1. 默认会产生一个id列

2.:null => false 限制列不能为空

3. address_id, company_id说明与address表和company表有关系

4. created_atupdated_at,会在数据创建和更新的时候自动记录时间

* _on : 当记录创建或更新时, 自动记录当前时间. 产生一个date类型的列。

* _at : 当记录创建时,自动记录当前日期和时间,产生一个timestamp 类 型的列.

5.:default, 默认值


参考: http://www.packtpub.com/article/Working-with-Rails-ActiveRecord-Migrations-Models-Scaffolding-and-Database-Completion

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值