Ruby on rails 使用mongoid的参考嵌入式文档

Ruby on rails 使用mongoid的参考嵌入式文档,ruby-on-rails,ruby,mongodb,mongoid,Ruby On Rails,Ruby,Mongodb,Mongoid,我试图找到一种方法来引用:versions embedded集合中的最新PackageVersion。用于查询和访问 如果我可以有一个嵌入文档的自引用,这样我就可以像 class Package include Mongoid::Document field :slug, type: String field :created_at, type: Time key :slug embeds_many :versions, class_name: 'PackageVers

我试图找到一种方法来引用:versions embedded集合中的最新PackageVersion。用于查询和访问

如果我可以有一个嵌入文档的自引用,这样我就可以像

class Package
  include Mongoid::Document

  field :slug, type: String
  field :created_at, type: Time

  key :slug

  embeds_many :versions, class_name: 'PackageVersion'
end

到目前为止,我唯一的解决方案是只存储id并添加一个类方法来查找嵌入的id,但这不允许我使用最新版本轻松查询。

没有更好的解决方案,因为在Ruby中没有递归搜索键的方法。有什么比调用您创建的最新版本的类方法更容易呢?您还可以在降序日期为versions集合编制索引,以便运行查询并返回第一个元素。
embeds_one :latest_version, class_name: 'PackageVersion', via: :versions