扩展从ActiveRecord :: Base扩展的泛型模型

时间:2014-03-13 02:05:38

标签: ruby-on-rails ruby-on-rails-3 activerecord extending-classes

我有一个通用的Service模型,其中包含一些通用功能,包括一些被实际服务覆盖的功能'。

service.rb

class Service < ActiveRecord::Base
  def get_line_items
    raise "Not Implemented"
  end
end

然后我有一个扩展Service模型的模型:

misc_service.rb

class MiscService < Service
  attr_accessible :retail_price
  def get_line_items
    return [{"Misc Service - 1" => retail_price}]
  end
end

但是,当尝试在rails控制台中访问MiscService模型时,我收到错误:

:001 > service = MiscService.first
ActiveRecord::StatementInvalid: Mysql2::Error: Table 'devdb.services' doesn't exist: SHOW FULL FIELDS FROM `services`

我可以看到这种情况正在发生,因为它是扩展ActiveRecord::Base的服务模型,所以我可以在Service模型中做些什么来使任何模型将其扩展到而是使用自己的表?我希望从Service模型中获得这种情况,而不必在扩展它的任何模型中明确定义它。

1 个答案:

答案 0 :(得分:0)

这与子类无关。您的服务表本身尚未就绪。确保准备好迁移文件并运行$ rake db migrate