Ruby on rails开发从头来(三十八)- ActiveRecord基础(列和属性)2011-12-04 博客园 CureActiveRecord中的一个对象相当于数据库中表的一行,对象的属性对应于表的列,也许你会注意到我们的Order类没有提及关于orders表的任何东西,这是因为ActiveRecord在运行时来确定这些对应关系,Active Record将数据库中的模式反应到类中。我们的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));
我们可以创建一个类来转换这个表:
require "rubygems"require_gem "activerecord"# Connection code omitted...class Order < ActiveRecord::Baseend
当我们创建了Order类,就可以访问它的属性来获取信息,下面的代码使用columns()方法,来返回一个Columns对象的数组,在这里,我们显示了orders表中的每个列,并且显示指定字段的详细信息。
require "pp"pp Order.columns.map { |col| col.name }pp Order.columns_hash["shipped_at"]运行代码,会得到下面的输出:
["id", "name", "email", "address", "pay_type", "shipped_at"]#<ActiveRecord::ConnectionAdapters::Column:0x10e4a50@default=nil,@limit=nil,@name="shipped_at",@type=:datetime>