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 に答える