2012-04-19 43 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並避免完全使用額外的時間戳。