Ruby on rails rails activerecord的导入/导出功能
我想让我的用户能够在我的服务器上导出和导入他们的帖子,包括图像、评论和任何链接到对象的数据 基本上,我希望他们能够点击某个地方并收到一个zip文件,如果他们打开它,他们将看到几个xml、json或yaml文件以及作为他们文章一部分的图像文件 然后,他们可以上传文件,并以导出时的方式收回帖子 我找不到任何教程或gem来帮助我,你能向我推荐解决这个问题的设计吗Ruby on rails rails activerecord的导入/导出功能,ruby-on-rails,ruby,design-patterns,activerecord,export,Ruby On Rails,Ruby,Design Patterns,Activerecord,Export,我想让我的用户能够在我的服务器上导出和导入他们的帖子,包括图像、评论和任何链接到对象的数据 基本上,我希望他们能够点击某个地方并收到一个zip文件,如果他们打开它,他们将看到几个xml、json或yaml文件以及作为他们文章一部分的图像文件 然后,他们可以上传文件,并以导出时的方式收回帖子 我找不到任何教程或gem来帮助我,你能向我推荐解决这个问题的设计吗 谢谢,过去,我这样做是为了出口: 创建一个新的临时目录 将要导出的所有内容序列化为所选格式,并将其写入该目录中的文件 确保图像清晰可识别,
谢谢,过去,我这样做是为了出口:
- 创建一个新的临时目录
- 将要导出的所有内容序列化为所选格式,并将其写入该目录中的文件
- 确保图像清晰可识别,例如,通过序列化其文件名而不是神秘的ID
- 复制临时目录中的图像文件
- 压缩整个目录(可以通过系统命令完成)
- 可选,但这是一个好主意:将整个shebang移动到后台作业中,并在用户的文件准备好下载后通知用户
记录#属性_名称
假设您只想导出一个Post对象的标题、正文和创建日期,该Post对象通常还更新了\u at、用户\u id等
# 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
只在导出脚本中执行此操作很重要,因为这里的记录自省会出错。但是,通常导出方法(到_yaml、到_xml等)依赖于此机制来确定导出内容,因此在本地/临时执行此操作非常有效。谢谢,您是对的,在数据库中加载用户上传的数据可能不是一个好主意。用这种方法实施的安全措施将非常庞大。