Rails: Invalid single-table inheritance type error

Blaine Kasten picture Blaine Kasten · Aug 15, 2013 · Viewed 7.3k times · Source

So, I am working on migrating this php site with an existing database which I cannot change over to Rails. There is a table: Quotes with a column named type. Whenever I try and create a model of this and set the type, it tells me the following error:

ActiveRecord::SubclassNotFound (Invalid single-table inheritance type: HOME is not a subclass of Quotes)

I don't understand why it thinks its inheriting because it's not supposed to. My create method looks like this:

quote = Quotes.create(
  agent_id: agent.id,
  client_id: client.id,
  type: 'HOME',
  status: 0,
  date_created: DateTime.now 
)

If I comment out the type, everything works fine. But with the Type it errors.

Answer

Blaine Kasten picture Blaine Kasten · Aug 15, 2013

I resolved this by setting the models inheritance_column to nil. Active Record Models can inherit from a table through the attribute :type, setting the inheritance_column to nil removes that attribute allowing you to have a database column named type

class Quote < ActiveRecord::Base
    self.inheritance_column = nil
end