2012-04-19 42 views
0

我在我的项目中使用了mongoid和carrierwave-mongoid gems(用户模型中的头像),并且需要上传图片URL中的时间戳。我知道这里有一个Wiki页面(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),在这里你可以看到我的用户模型和头像上传。

感谢您的帮助。

回答

0

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

还有一个写起来就可以了这里:

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

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