Ruby on rails 使用mongoid的参考嵌入式文档
我试图找到一种方法来引用:versions embedded集合中的最新PackageVersion。用于查询和访问 如果我可以有一个嵌入文档的自引用,这样我就可以像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
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