Ruby on rails 3 rails 3.2.3 STI、AR子类不继承关联/反射
轨道3.2.3 下面是一个让我困惑的例子: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 请注意,我希望女人.反射.钥匙是[:玩具,曲奇] 此外,如果我这样做:
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