我有一個模型類「Abtest」,它從沒有支持表的抽象基類「ModBase」繼承。當Abtest.new被調用時,即使在ModBase類中我有「self.abstract_class = true」,我也會得到以下錯誤。我做錯了什麼?Rails Mysql適配器試圖查詢沒有支持表的抽象模型類
class ModBase < ActiveRecord::Base
self.abstract_class = true
class Abtest < ModBase
ActiveRecord::StatementInvalid (Mysql::Error: Table 'mydb.mod_bases' doesn't exist: SHOW FIELDS FROM `mod_bases`):
activerecord (3.1.0) lib/active_record/connection_adapters/mysql_adapter.rb:435:in `query'
activerecord (3.1.0) lib/active_record/connection_adapters/mysql_adapter.rb:435:in `execute'
activerecord (3.1.0) lib/active_record/connection_adapters/abstract_adapter.rb:244:in `log'
activesupport (3.1.0) lib/active_support/notifications/instrumenter.rb:21:in `instrument'
activerecord (3.1.0) lib/active_record/connection_adapters/abstract_adapter.rb:239:in `log'
activerecord (3.1.0) lib/active_record/connection_adapters/mysql_adapter.rb:435:in `execute'
activerecord (3.1.0) lib/active_record/connection_adapters/mysql_adapter.rb:636:in `columns'
activerecord (3.1.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `initialize'
activerecord (3.1.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:185:in `with_connection'
activerecord (3.1.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:92:in `initialize'
activerecord (3.1.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:112:in `call'
activerecord (3.1.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:112:in `default'
activerecord (3.1.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:112:in `[]'
activerecord (3.1.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:112:in `initialize'
activerecord (3.1.0) lib/active_record/base.rb:717:in `call'
activerecord (3.1.0) lib/active_record/base.rb:717:in `default'
activerecord (3.1.0) lib/active_record/base.rb:717:in `[]'
activerecord (3.1.0) lib/active_record/base.rb:717:in `column_defaults'
activerecord (3.1.0) lib/active_record/persistence.rb:327:in `attributes_from_column_definition'
activerecord (3.1.0) lib/active_record/locking/optimistic.rb:69:in `attributes_from_column_definition'
activerecord (3.1.0) lib/active_record/base.rb:1544:in `initialize'
app/models/abtest.rb:89:in `new'
如果你的類沒有支持表,爲什麼讓它繼承自ActiveRecord? – Maran 2013-03-16 23:13:54
它包含與AR相關的包裝函數,例如保存等。它將所有具有單獨表格的子類的共同性排除在外。我沒有使用STI。 – kimkunjj 2013-03-17 02:46:53