如何获取模型定义中定义的embeds_many关系的所有键?当我执行Model.attribute_names
时,它只为我提供了文档模式中定义的字段的键。
假设您的模型名称是User
,您可以获得所有embedded_many关系,如下所示:
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 }