缺少上传图像的时间戳

时间:2012-04-19 11:37:53

标签: mongodb mongoid carrierwave timestamp

我的项目中有mongoid和carrierwave-mongoid gems(用户模型中的头像),并且在上传的图片URL中需要时间戳。我知道有这个维基页面(https://github.com/jnicklas/carrierwave/wiki/How-to%3A-Use-a-timestamp-in-file-names),但有注意“这似乎不可靠。我强烈建议将时间戳保存到数据库并从模型中读取它以生成文件名而不是使用这种方法。“我不知道该怎么做。

我认为Rails应该自动为图像URL生成时间戳,还是从特定属性生成时间戳?所以我不确定这个属性的正确名称是什么,或者使用Mongoid和carrierwave-mongoid的正确方法是什么。

您能否向我提供一些信息或链接,我可以在这里找到更多关于此信息或有关解决方案的信息。

因为我在GitHub上的回购是私有的,所以我做了这个Gist(https://gist.github.com/2355128),在那里你可以看到我的用户模型和头像上传者。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

这可能比您想要的答案更通用,但希望它能帮助您找到合适的解决方案。用于MongoDB中默认_id字段的唯一ObjectID具有“内置”的时间戳,BSON :: ObjectId将是您在Mongoid中提取它的内容。

此处还有一篇文章:

http://www.mongodb.org/display/DOCS/Optimizing+Object+IDs#OptimizingObjectIDs-Extractinsertiontimesfromidratherthanhavingaseparatetimestampfield

因此,您可以使用ObjectID周围的包装器来构建您的URL,并避免完全使用额外的时间戳。