Inheritance problem in model

You've defined abstract_class? as an instance method rather than as a
class method. It's a little less verbose to just do
class Item < ActiveRecord::Base
self.abstract_class = true
end

Fred

What's the actual code you've got, the actual error message you get
and the database structure of the books table ?

Fred

In your initialize you need to call the super class initialize method
(AR::Base's initialize sets up some important stuff). Also I seem to
recall that there are some issues involved with overriding AR::Base's
implementation of initialize. At the very least you need to make your
initialize pass through any arguments or block specified to super

Fred

Sure you do:

def initialize
  @quantity = 1
end

That should probably be

def initialize(*args, &block)
  super(*args, &block)
  @quantity = 1
end

Or, don't define initialize at all and use an after_initialize
callback.

Fred