Я делаю приложение, используя mongodb и mongoid, и сталкиваюсь с проблемой, когда мне нужно сопоставить что-то в одном документе с чем-то в другом документе. Мой план состоит в том, чтобы сохранить что-то в документе, который я затем смогу использовать, чтобы выяснить, какое значение для него нужно извлечь из другой коллекции. Но, в общем, это рубиновый вопрос о том, как я могу получать данные из глубины хэша.
У меня есть что-то вроде структуры:
Widget
Sections
0
Fields
0
value: foobar
Если это имеет смысл. Допустим, я хочу получить значение первого поля в первом разделе, я бы сделал что-то вроде:
@widget.sections[0].fields[0].value
Нет проблем.
Теперь вопрос, как я могу сделать это со всем этим как строку? То, что я хочу сделать, это сохранить в базе данных значение сопоставления. Итак, у меня есть ключ / значение с чем-то вроде:
mapping: "sections[0].fields[0].value"
Теперь, как я могу использовать это для получения данных из @widget? Я попытался @ widget.send "section [0] .fields [0] .value", но это не работает ... Я могу сделать @ widget.send "section" и получить массив разделов, но я ' Я не совсем уверен, как это сделать дальше ...
Итак, подведя итог, я могу сделать это:
@widget.sections[0].fields[0].value
если у меня есть @widget
и строка «section [0] .fields [0] .value», как я могу это выполнить?