我正在使用mongodb和mongoid做一个应用程序,我正面临一个问题,我需要将一个文档中的内容映射到另一个文档中的内容。我的计划是在文档中存储一些东西,然后我可以使用它来确定从不同的集合中获取它的价值。但是,这通常是一个关于如何从散列中深入获取数据的红宝石问题。
我的结构是这样的:
Widget
Sections
0
Fields
0
value: foobar
如果这是有道理的。假设我想获得第一部分中第一个字段的值,我会做类似的事情:
@widget.sections[0].fields[0].value
没问题。
现在问题是,如何将所有这些作为字符串执行?我想要做的是在数据库中存储一个映射值。所以我有一个关键/值类似于:
mapping: "sections[0].fields[0].value"
现在我如何使用它来从@widget获取数据?我已经尝试了@ widget.send“sections [0] .fields [0] .value”但这不起作用......我可以做@ widget.send“sections”并返回一系列的部分,但我'我不太清楚如何进一步采取行动......
总而言之,我可以这样做:
@widget.sections[0].fields[0].value
如果我有@widget
和字符串“sections [0] .fields [0] .value”我该怎么执行呢?
答案 0 :(得分:1)
@widget.instance_eval("sections[0].fields[0].value")
应该这样做。