有没有更好的方法来创建Rails子类?

时间:2013-10-18 00:15:17

标签: ruby callback ruby-on-rails-4 single-table-inheritance

我的单表继承系统根据我服务的输入字符串创建它的子类。我想知道是否有更好的方法来编写这段代码,因为它似乎很笨拙。

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

{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'似乎很臭。任何机构都有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

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