从模型定义中获取所有embeds_many关系键

时间:2017-12-23 09:54:46

标签: ruby-on-rails mongoid

如何获取模型定义中定义的embeds_many关系的所有键?当我执行Model.attribute_names时,它只为我提供了文档架构中定义的字段的键。

1 个答案:

答案 0 :(得分:1)

假设您的模型名称为"jest": { ... "testPathIgnorePatterns": [ "<rootDir>/(build|docs|node_modules)/" ] ,您可以获得所有embedded_many关系,如下所示:

User

这将返回embeds_many关系的哈希值。

获取密钥:

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

如果使用别名embeds_many_relations.map { |k, _| k } 存储关联,则可以通过调用以下方式获取数据库密钥:

embeds_many :phones, store_as: :phs