小编Adr*_*ala的帖子

Rails 3 ActiveRecord抽象对象

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

class Basic < ActiveRecord::Base
  self.abstract_class = true

  def stuff
    raise NotImplementedError
  end
end
Run Code Online (Sandbox Code Playgroud)

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

"Mysql2::Error: Table 'project_development.basics' doesn't exist"
Run Code Online (Sandbox Code Playgroud)

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

使用1.9.2-p136和Rails 3.0.4/Mysql2 0.2.6

编辑:

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

class Basic < ActiveRecord::Base
  self.abstract_class = true
  @columns = []
end
Run Code Online (Sandbox Code Playgroud)

奇迹般有效.

ruby activerecord ruby-on-rails

17
推荐指数
1
解决办法
1万
查看次数

标签 统计

activerecord ×1

ruby ×1

ruby-on-rails ×1