出于测试目的,我正在尝试实例化一个抽象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配合使用
编辑:
事实证明,错误是由列定义引起的,在抽象模型的情况下,列定义不能从数据库中获取。
class Basic < ActiveRecord::Base
self.abstract_class = true
@columns = []
end
就像一种护身符。
发布于 2011-02-17 19:53:02
这是正常行为。抽象类不应该被实例化。您应该测试从抽象类继承的类,而不是抽象类本身。
https://stackoverflow.com/questions/5028082
复制相似问题