从模型定义中获取所有 embeds_many 关系键
get all embeds_many relationship keys from model definition
如何获取模型定义中定义的 embeds_many 关系的所有键?当我执行 Model.attribute_names
时,它只会为我提供文档架构中定义的字段的键。
假设你的模型名称是User
,你可以得到所有的embedded_many关系如下:
embeds_many_relations = User.relations.select { |k, v| v.relation == Mongoid::Relations::Embedded::Many }
这个 returns embeds_many 关系的散列。
获取钥匙:
embeds_many_relations.map { |k, _| k }
如果您使用别名存储关联,即 embeds_many :phones, store_as: :phs
,那么您可以通过调用以下方式获取数据库密钥:
embeds_many_relations.map { |_, v| v.key }
如何获取模型定义中定义的 embeds_many 关系的所有键?当我执行 Model.attribute_names
时,它只会为我提供文档架构中定义的字段的键。
假设你的模型名称是User
,你可以得到所有的embedded_many关系如下:
embeds_many_relations = User.relations.select { |k, v| v.relation == Mongoid::Relations::Embedded::Many }
这个 returns embeds_many 关系的散列。
获取钥匙:
embeds_many_relations.map { |k, _| k }
如果您使用别名存储关联,即 embeds_many :phones, store_as: :phs
,那么您可以通过调用以下方式获取数据库密钥:
embeds_many_relations.map { |_, v| v.key }