我的单表继承系统基于来自我的服务的输入字符串创建它的子类。我想知道是否有更好的方法来编写这段代码,因为它看起来很笨重。
客户不应该知道,也不应该关心我的子分类结构是什么。当请求进来时,我得到的参数是:
{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'似乎很臭。任何机构对此有更好的解决方案?