将继承的对象保存到Mongoid中的单独集合中

Boe*_*nne 8 collections inheritance ruby-on-rails mongodb mongoid

我读到mongoid中的继承,似乎所有继承的类都将保存在基类中,例如

class BaseClass
end

class ChildClass1 < BaseClass
end

class ChildClass2 < BaseClass
end
Run Code Online (Sandbox Code Playgroud)

似乎所有这些都存储在BaseClass集合中.

我实际上希望它们存储在单独的集合中,例如ChildClass1 - collectionChildClass2 - collection.

shi*_*ara 3

这是不可能的。因为这是 Mongoid 中 STI 的概念,正如Mongoid 创建者 Durran 所解释的那样

如果您确实想保存在多个集合中,则需要使用模块包含,例如:

class BaseClass
  include MyModule
end

class ChildClass1
  include MyModule
end

class ChildClass2
  include MyModule
end
Run Code Online (Sandbox Code Playgroud)