From: Andrew Libby Date: 2006-10-15T00:53:13+09:00 Subject: Active Record Inheritence 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"}, @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