rails 1.2.5
I’ve an abstract class as subclass of ActiveRecord::Base . Like this:
class SomeAbstractModel < ActiveRecord::Base
self.abstract_class = true
end
I’ve a table Foo with a column “type”, since I’ve subclasses of Foo.
If this class is defined like this
class Foo < ActiveRecord::Base
end
a simple select produces this query:
Foo.find(1)
SELECT * FROM foo WHERE (foo.“id” = 1)
If I change the superclass of Foo to my Abstract Model:
class Foo < SomeAbstractModel
end
the simple select produces now a different query
Foo.find(1)
SELECT * FROM foo WHERE (foo.“id” = 1) AND ( (foo.“type” = ‘Foo’ ) )
This leads to my problem, since I’ve some rows where the type is NULL.
Why does ActiveRecord behave like that? Well,
Foo.superclass.abstract_class? returns true. Any thoughts?