【发布时间】:2013-09-25 02:17:00
【问题描述】:
我有这样的要求,即用户从手机上传照片,并在照片中输入注释
但是,为了大大提高响应速度,我想在用户完成输入注释之前开始上传照片(与 instagram 使用相同的技术)
因此,有 3 种情况: - 照片上传完成,然后提交笔记 - 提交笔记,然后照片完成上传 - 笔记和照片同时完成上传
我现在使用一个唯一的令牌,以及 after_create 挂钩来检查和保存。
照片上传和便笺都附带一个独特的 uuid
-
使用唯一 ID 将照片存储在临时存储中
- 照片保存后(after_create),检查是否有带有uniqueid的笔记。如果有,请附上照片以作备注。
-
使用唯一标识存储笔记
- 当笔记被保存(after_create)时,检查是否有任何带有uniqueid的照片。如果是这样,请在照片上附上备注
这似乎是一个相当普遍的问题,我想知道是否有任何可接受的模式/解决方案?我正在使用 mongoid 和 rails 3.2
【问题讨论】:
-
我认为您必须将表示层与应用层区分开来。考虑到网络应用程序,instagram 也是一个非常糟糕的例子,因为它是原生的,并且可以轻松地做你不能做的事情(完全或付出很大的努力)。在本机应用程序案例中,安全问题也较少,因为用户无法编辑发送到服务器的参数(您的示例显然就是这种情况)。在我的一个应用程序中,我只是锁定提交按钮,直到照片上传完成。这是一个非常简单的解决方案。
标签: ruby-on-rails mongodb concurrency ruby-on-rails-3.2 mongoid