Я пытаюсь создать экземпляр объекта абстрактного класса AR для целей тестирования. Модель определена следующим образом:
class Basic < ActiveRecord::Base
self.abstract_class = true
def stuff
raise NotImplementedError
end
end
Когда я пытаюсь Basic.new
, я получаю:
"Mysql2::Error: Table 'project_development.basics' doesn't exist"
Это нормальное поведение? Разве абстрактные классы AR не предназначены для инстанцирования даже без (очевидно невозможного) настойчивости?
Использование 1.9.2-p136 с Rails 3.0.4/Mysql2 0.2.6
Edit:
Оказывается, что ошибка вызвана определениями столбцов, которые в случае абстрактной модели не могут быть получены из базы данных.
class Basic < ActiveRecord::Base
self.abstract_class = true
@columns = []
end
Работает как шарм.