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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值