Using Ruby on Rails, how can I tell if the DB schema allows a 
particular column in a table to be null or not? I don't see it in the 
attributes of a Column object.

For example, this PSQL table:

create table users (
         id serial primary key,
         user varchar(200) not null,
         passcrypt varchar(15) not null,
         disabled_flag boolean default '0',
         zip varchar(10) not null,
         firstname varchar(50),
         lastname varchar(50),
         nickname varchar(50),
         email varchar(50),
         phone varchar(25)
);

produces the following columns through introspection:

#<ActiveRecord::ConnectionAdapters::Column:0x24c9854 @type=:boolean, 
@limit=nil, @default="f", @name="disabled_flag">
#<ActiveRecord::ConnectionAdapters::Column:0x24c9818 @type=:integer, 
@limit=nil, @default=nil, @name="id">
#<ActiveRecord::ConnectionAdapters::Column:0x24c97b4 @type=:string, 
@limit=nil, @default=nil, @name="password">
#<ActiveRecord::ConnectionAdapters::Column:0x24c9750 @type=:string, 
@limit=25, @default=nil, @name="phone">
#<ActiveRecord::ConnectionAdapters::Column:0x24c96ec @type=:string, 
@limit=50, @default=nil, @name="email">
#<ActiveRecord::ConnectionAdapters::Column:0x24c9660 @type=:string, 
@limit=50, @default=nil, @name="nickname">
#<ActiveRecord::ConnectionAdapters::Column:0x24c95d4 @type=:string, 
@limit=50, @default=nil, @name="lastname">
#<ActiveRecord::ConnectionAdapters::Column:0x24c9548 @type=:string, 
@limit=50, @default=nil, @name="firstname">
#<ActiveRecord::ConnectionAdapters::Column:0x24c94bc @type=:string, 
@limit=10, @default=nil, @name="zip">
#<ActiveRecord::ConnectionAdapters::Column:0x24c9430 @type=:string, 
@limit=200, @default=nil, @name="login">

Note that the last 5 columns (in the sql) may be null, but are not 
differentiated as such in the Column instances.
--
(-, /\ \/ / /\/