ActiveRecord单表继承 - 如何获取根模型?

时间:2016-05-02 12:53:38

标签: ruby-on-rails activerecord rails-activerecord single-table-inheritance

我有一个使用单表继承的模型和一个应该适用于任何模型的关注点。

考虑这个例子:

class Car
  acts_as_categorizable
end

class Suv < Car; end

module Categorizable
  def after_safe
    siblings = this.class.where(category: self.category)
    #... do something with the siblings
  end
end

现在,如果我有一个Suv并操纵其类别,兄弟姐妹系列只能找到该类别中的其他Suv汽车,但我需要找到该类别中的所有汽车。

我不想对此进行硬编码,所以给定Suv类,我需要找到它的根模型(Car)。

2 个答案:

答案 0 :(得分:2)

实际上已经有了这种方法; base_class。因此Suv.base_class应返回CarSuv的任何子类也将使用此方法返回Car

答案 1 :(得分:0)

这应该可以解决问题:

{{1}}