2012-04-19 21 views
0

私のプロジェクトにmongoidとcarrierwave-mongoidの宝石があります(ユーザーモデルのアバター用)。アップロードされた画像の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を構築し、余分なタイムスタンプの使用を完全に避けることができます。

関連する問題