0

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

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

您能否提供一些信息或链接,我可以在其中找到有关此问题的更多信息或有关解决方案的信息。

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

谢谢你的帮助。

4

1 回答 1

0

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

这里也有一篇关于它的文章:

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

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

于 2012-04-19T16:13:49.657 回答