多个级别的关联数据库对象到YAML

时间:2011-06-01 14:21:26

标签: ruby serialization yaml

我需要从以下数据库表中创建一个“List”对象。我已经在rails / datamapper应用程序中完成了这个,但现在我需要通过YAML将特定列表输入和输出数据库。

List
  Categories
    Items
      Item choices

e.g。给定一个列表标识符,将初始列表,该列表的类别,这些类别的项目以及这些项目的选项拉入某个对象,然后输出为yaml文件。

我的第一步是向yaml输出一个特定的列表,这不应该是一个独特的情况,我相信其他人已经解决了它。从阅读开始我猜我需要某种多级哈希,但到目前为止我能做到的只是得到列表和类别......即。这有点超出了我的范围,我只是在命令行工作。

我要求两件事真的有助于提高我的技能:

  • 在给定一系列关联的数据库表的情况下,使用多级嵌套哈希情况为yaml正确序列化对象的指南

  • 如果有人更容易解决问题。

1 个答案:

答案 0 :(得分:2)

包含的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

希望这有帮助