Rails详细介绍(八)ActiveRecord基础(列和属性)

    ActiveRecord中的一个对象相当于数据库中表的一行,对象的属性对应于表的列,ActiveRecord在运行时来确定这些对应关系 。
我们的orders表可能使用下面的sql来创建:

create table orders (

id int not null auto_increment,

name varchar(100) not null,

email varchar(255) not null,

address text not null,

pay_type char(10) not null,

shipped_at datetime null,

primary key (id)

);

我们可以创建一个类来转换这个表:

 

class Order < ActiveRecord::Base

end

当我们创建了Order类,就可以访问它的属性来获取信息,下面的代码使用columns()方法,来返回一个Columns对象的数组,在这里

,我们显示了orders表中的每个列,并且显示指定字段的详细信息。

 

puts Order.columns.map { |col| col.name }

puts Order.columns_hash['shipped_at']

运行代码,会得到下面的输出:

["id", "name", "email", "address", "pay_type", "shipped_at"]

@default=nil,

@limit=nil,

@name="shipped_at",

@type=:datetime>

注意,Active Record决定了每个列的类型,在这个例子里,将shipped_at列作为datetime类型,该列的值被保存在一个ruby的Time

类型的对象中,我们可以写些代码来验证该列的类型及其内容:

order = Order.new

order.shipped_at = "2005-03-04 12:34"

puts order.shipped_at.class

puts order.shipped_at

输出为:

Time

Fri Mar 04 12:34:00 CST 2010

下面的列表展示了sql和ruby间的数据类型对应关系:

SQLType            Ruby Class     

int, integer       Fixnum                    

decimal, numeric   Float              

clob, blob, text   String                    

interval, date     Date                             
float, double      Float
char, varchar, string   String
datetime, time     Time

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值