ActiveRecord中的一個對象相當於資料庫中表的一行,對象的屬性對應於表的列,也許你會注意到我們的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>