2010-10-15 114 views
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「節[0] .fields [0] .value」,但這不起作用......我可以做@ widget.send「節」,並取回一個部分的數組,但我'不十分清楚如何採取進一步...

所以總結一下,我可以這樣做:如果我有@widget

@widget.sections[0].fields[0].value 

一個字符串「節[0]點域[0]。價值「我該如何執行?

回答

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

應該這樣做。