Greetings,

I'm having some troubles getting single table inheritance 
working.  I'm outside of rails, and I _think_ I understand 
the way this whole thing is supposed to work.  I've got 
tables in a PostgreSQL database, (principal and user, the 
User class extends Principal).

When I run the following code I get an error like so:

/usr/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/base.rb:1789:in 
`method_missing': undefined method `first_name=' for 
#<User:0xb7d815cc @attributes={"type"=>"User"}, 
@new_record=true> (NoMethodError)

When I change the class definition of User to extend 
ActiveRecord::Base the code works and I wind up with rows in 
the users table.

Any ideas what I'm not doing correctly?


The code:

#!/usr/bin/ruby


#CREATE TABLE principals (
#    id integer DEFAULT nextval('id_seq'::text) NOT NULL,
#    "type" text
#);
#
#
#CREATE TABLE users (
#    id integer DEFAULT nextval('id_seq'::text) NOT NULL,
#    username text,
#    "password" text,
#    first_name text,
#    last_name text
#);

require 'rubygems'
require 'active_record'

ActiveRecord::Base.establish_connection(
     :adapter  => "postgresql",
     :host     => "localhost",
     :username => "org",
     :password => "xx",
     :database => "org"
)

class Principal < ActiveRecord::Base

end

class User < Principal

end

u = User.new
u.first_name = 'joejoe'

-- 
Andrew Libby
Tangeis, LLC
Innovative IT Management Solutions
alibby / tangeis.com