Ruby on rails 3 rails 3.2.3 STI、AR子类不继承关联/反射

Ruby on rails 3 rails 3.2.3 STI、AR子类不继承关联/反射,ruby-on-rails-3,rails-activerecord,single-table-inheritance,Ruby On Rails 3,Rails Activerecord,Single Table Inheritance,轨道3.2.3 下面是一个让我困惑的例子: class Person < ActiveRecord::Base has_many :toys end class Man < Person end class Woman < Person has_many :cookies, foreign_key: person_id end 请注意,我希望女人.反射.钥匙是[:玩具,曲奇] 此外,如果我这样做:

轨道3.2.3

下面是一个让我困惑的例子:

    class Person < ActiveRecord::Base
      has_many :toys
    end

    class Man < Person
    end

    class Woman < Person
      has_many :cookies, foreign_key: person_id
    end
请注意,我希望
女人.反射.钥匙
[:玩具,曲奇]

此外,如果我这样做:

    Person.new.keys  # []
    Man.new.keys  # []
    Woman.new.keys  # NoMethodError: undefined method `association_class' for nil:NilClass

所以我知道我到底在干什么。我不太清楚为什么应用程序加载并运行时没有问题,但后来给了我这个问题。以下是有关我的型号的更多信息:

class Person < ActiveRecord::Base
  DEFAULT_SUBCLASS = Woman  # <------
  has_many :toys
end

class Man < Person
end

class Woman < Person
  has_many :cookies, foreign_key: person_id
end
class-Personclass Person < ActiveRecord::Base
  DEFAULT_SUBCLASS = Woman  # <------
  has_many :toys
end

class Man < Person
end

class Woman < Person
  has_many :cookies, foreign_key: person_id
end