我正在尝试使用单表继承从不是单表继承的基类的类中查询类层次结构中的所有记录。例如,给定以下类heirarchy。
class Animal < ActiveRecord::Base; end
class Dog < Animal; end
class Mutt < Dog; end
class PureBred < Dog; end
我希望能够查询所有的狗
dogs = Dog.all
和狗是Mutt和PureBred的实例列表。
可以这样做吗?我通过将Dog类中的default_scope设置为
来尝试概念验证default_scope { where(:type => ['Mutt', 'PureBred']) }
但ActiveRecord仍在追加WHERE类型IN('Dog')的限制性更强的条件
答案 0 :(得分:4)
没有;你遇到了Rails技术限制的问题&#39;实施STI。
您必须查询基类:
Animal.where(type: %w(Dog Mutt PureBred))