我的单表继承系统根据我服务的输入字符串创建它的子类。我想知道是否有更好的方法来编写这段代码,因为它似乎很笨拙。
客户不应该知道,也不应该关心我的子类结构是什么。当我收到参数的请求是:
{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'似乎很臭。任何机构都有更好的解决方案吗?
答案 0 :(得分:0)
我不确定我是否得到你想要的东西,但是你应该在你的计算器表上创建一个类型列,你的类将从Calculator继承它。