首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Rails 3 ActiveRecord抽象对象

Rails 3 ActiveRecord抽象对象
EN

Stack Overflow用户
提问于 2011-02-17 19:03:33
回答 1查看 10.7K关注 0票数 17

出于测试目的,我正在尝试实例化一个抽象AR类的对象。模型的定义如下:

代码语言:javascript
复制
class Basic < ActiveRecord::Base
  self.abstract_class = true

  def stuff
    raise NotImplementedError
  end
end

当我尝试Basic.new时,我得到:

代码语言:javascript
复制
"Mysql2::Error: Table 'project_development.basics' doesn't exist"

这是正常行为吗?抽象AR类即使没有持久化(显然是不可能的),也不打算被实例化吗?

将1.9.2-p136与Rails 3.0.4 / Mysql2 0.2.6配合使用

编辑:

事实证明,错误是由列定义引起的,在抽象模型的情况下,列定义不能从数据库中获取。

代码语言:javascript
复制
class Basic < ActiveRecord::Base
  self.abstract_class = true
  @columns = []
end

就像一种护身符。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-17 19:53:02

这是正常行为。抽象类不应该被实例化。您应该测试从抽象类继承的类,而不是抽象类本身。

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5028082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档