我面临着需要以一种易于读回我的系统的格式导出一组模型实例(其中一些具有关联的文件附件),但这也是人类友好的阅读,并可能导入另一个类似的系统(尽管我不关心将其导出以适应任何特定标准,因为似乎还没有关于 ePortfolio 导出标准的巨大共识。
这样做的重点是为最终用户备份,以便他们可以与使用我们产品的其他学校共享这些电子档案。
我目前的想法是为每个适用的模型添加一个导出方法,以定义要吐出的内容。此方法还将调用此模型所依赖的关联模型的导出方法(例如子关系)。
我目前的导出格式选择是 YAML,因为它的可读性和与 Ruby 的集成。文件系统格式可能是 zip 文件结构,我想我需要以某种方式重新标识所有模型实例或在 YAML 文件中显示这种父子关系,以便可以在没有任何内容的新系统中创建它需要与原始系统中相同的 ID。
无论如何,我知道这有点宽泛,但我想听听您对这种机制的建议。