我想让我的用户能够在我的服务器上导出和导入他们的帖子,包括图像,评论和任何链接数据到对象。
基本上我希望他们能够点击某处并收到一个zip文件,如果他们打开它们,他们会看到几个xml,json或yaml文件以及属于他们帖子的图像文件。
然后,他们可以上传文件并按照导出时的方式返回帖子。
我找不到任何教程或宝石来帮助我,你能推荐我设计来解决这个问题吗?
谢谢,
答案 0 :(得分:1)
过去我这样做是为了出口:
压缩整个目录(可以通过系统命令完成)
可选,但这是一个好主意:将整个shebang移动到后台作业,并在文件准备好下载后通知用户。
我不确定导入是否可行,或者甚至是个好主意,但你可以试试。
指定导出哪些字段/属性的一个巧妙方法是覆盖Record#attribute_names
。
假设您只想导出通常也有updated_at,user_id等的Post对象的标题,正文和创建日期。
# in the export script you'd write
class Post
def attribute_names
['title', 'body', 'created_at']
end
end
Post.export_for(@user).all.to_yaml
仅在导出脚本中执行此操作非常重要,因为您可以在此处使用记录内省。但是,通常,导出方法(to_yaml,to_xml等)依赖于此机制来确定要导出的内容,因此在本地/暂时执行此操作非常有效。