从模型定义中获取所有嵌入式关系密钥



我如何获得在模型定义上定义的embeds_many关系的所有键?当我进行Model.attribute_names时,它只会给我为文档架构中定义的字段的键。

假设您的模型名称是 User,您可以获得所有嵌入式_any关系,如下所示:

embeds_many_relations = User.relations.select { |k, v| v.relation == Mongoid::Relations::Embedded::Many }

这返回embeds_many关系的哈希。

获取键:

embeds_many_relations.map { |k, _| k }

,如果您使用别名即embeds_many :phones, store_as: :phs存储您的关联,则可以通过致电来获取数据库键:

embeds_many_relations.map { |_, v| v.key }

最新更新