1

我的单表继承系统基于来自我的服务的输入字符串创建它的子类。我想知道是否有更好的方法来编写这段代码,因为它看起来很笨重。

客户不应该知道,也不应该关心我的子分类结构是什么。当请求进来时,我得到的参数是:

{calculator: {course: 'science'}} 

班上:

class Calculator < ActiveRecord::Base
  before_save :subclass, on: :create

  def subclass
    case course.downcase
    when "science"
      self.type = "Calculator::ScientificCalc"
    when "standard"
      self.type = "Calculator::StandardCalc"
    end
  end
end

对对象进行回调然后设置'self.type'似乎很臭。任何机构对此有更好的解决方案?

4

1 回答 1

0

我不确定我是否得到了你想做的事情,但你应该在你的计算器表上创建一个类型列,你的类将从计算器继承它。

于 2013-10-18T00:48:47.177 回答