我在我的项目中有mongoid和carrierwave-mongoid宝石(为用户模型的头像),并需要在上传的图像URL的时间戳。我知道有关于这一点的维基页面(https://github.com/jnicklas/carrierwave/wiki/How-to%3A-Use-a-timestamp-in-file-names),但有注释说“这似乎不可靠。我强烈建议将时间戳保存到数据库中,并从模型中读取它来生成文件名,而不是使用这种方法。”我不知道该怎么做。
我认为Rails应该自动或从特定属性生成图像URL的时间戳,对吧?所以我不确定这个属性的正确名称是什么,或者使用Mongoid和carrierwave-mongoid的正确方法是什么。
你能给我提供一些信息或链接,我可以找到更多关于这个或关于解决方案的信息。
因为我在GitHub上的回购是私人的,所以我做了这个要点(https://gist.github.com/2355128),在那里你可以看到我的用户模型和头像上传程序。
谢谢你的帮助。
发布于 2012-04-20 00:13:50
这可能比你想要的答案更通用,但希望它能让你得到一个合适的解决方案。用于MongoDB中默认_id字段的唯一ObjectID有一个时间戳“内置”,BSON::ObjectId将是您在Mongoid中寻找的提取它的方法。
还有一篇文章写在这里:
http://www.mongodb.org/display/DOCS/Optimizing+Object+IDs#OptimizingObjectIDs-Extractinsertiontimesfromidratherthanhavingaseparatetimestampfield。
因此,您可以在ObjectID周围使用包装器来构造URL,并完全避免使用额外的时间戳。
https://stackoverflow.com/questions/10227193
复制相似问题