несколько уровней связанных объектов БД в YAML - PullRequest
3 голосов
/ 01 июня 2011

Мне нужно создать объект «Список» из следующих таблиц БД.Я уже сделал это в приложении rails / datamapper, но теперь у меня есть необходимость получать конкретные списки в БД и из них через YAML.

List
  Categories
    Items
      Item choices

например, учитывая идентификатор списка, перетащите начальный список, категории для этого списка, элементы для этих категорий и варианты выбора этих элементов в некоторый объект, а затем выведите в виде файла yaml.

Мой первый шаг - вывод определенного списка в yaml, это не должно быть уникальной ситуацией, и я уверен, что другие уже решили ее раньше.После прочтения, я предполагаю, что мне нужен какой-то многоуровневый хеш, но все, что я смог сделать до сих пор, это получить список и категорию ... т.е. это немного выходит за рамки моего диапазона, и яработает только из командной строки.

Я прошу две вещи, которые действительно помогут отточить мой набор навыков:

  • руководство по работе с многоуровневым, вложеннымхэш-ситуация для правильной сериализации объекта для yaml, учитывая серию связанных таблиц БД

  • , если есть более простой способ, который кто-то уже решил.

1 Ответ

2 голосов
/ 01 июня 2011

Включенный метод to_json ( doc ) уже позволяет вам легко вкладывать связанные записи и выбирать, что вы хотите вывести:

List.all.to_json(:only => {}, :include => { 
                   :categories => { :only => {}, :include => { 
                     :items => { :only => :your_attribute_name }
                   }
                 })

Следующий шаг - преобразовать его в yaml:

ActiveSupport::JSON.decode(your_json).to_yaml

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...