2

我正在使用 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”,我该如何执行?

4

1 回答 1

1
@widget.instance_eval("sections[0].fields[0].value")

应该做的伎俩。

于 2010-10-15T22:20:17.170 回答