2010-12-29 14 views
3

私はS3を使用して画像を保存するためにPaperclipを使用しています。 Paperclipは、キャッシュのために画像の最後に文字列(タイムスタンプ)を追加することは私の理解です。文字列を作成するためにどのようなメソッドを使用するか知っていますか?Paperclip - ファイル名にタイムスタンプを追加する方法を教えてください。

jQueryの$ .getJSONを使用して、応答データを解析し、配列を作成してDOMに追加するコンテンツを取得しています。すべてがうまくいっていますが、ファイル名の最後に文字列を追加する必要があります。ここで

は例です:URLは一例ですが

<img src="http://s3.amazonaws.com/some_bucket/some_image.jpg?1293603533" /> 

、ファイル名に追加の文字列は、実際のです。この画像の他のデータは以下の通りです。

image_file_size: 159713 
image_height: 415 
image_width: 900  
image_updated_at: 2010-12-29 06:18:53 

私はそれがすべてのストリッピングと同じくらい簡単だろうと思った「:」と「 - 」image_updated_at属性から、それはそれは簡単には見えません。それは完全にランダムですか?誰でもこれについて何か考えている?私は手に感謝します!

答えて

3

IはRails sourceに見て、このasset_idこの行で計算される:

File.mtime(path).to_i.to_s 

だからそれだけで整数にTimeオブジェクトに変換されます。そしてruby docsは、それがエポックから数秒に過ぎないと言います。

Hereは、jsの日付をルビーto_iと同じ形式に変換する方法の例です。私はそれをチェックし、それは同じ価値を与える。

+0

+1鮮やかな答え、ありがとう!私は、私がこれについて行く方法を変える必要があるかもしれないことを私が知るのを助けたと思う。私は新しい50レコードを取得するたびにこの計算を50回実行する必要があります。私は、キャッシュされたバージョンを取得しないか、またはレイアウトでコンテンツを構築して、それをajax経由で取得するという事実を持って生きなければならないと思います。徹底的な答えをありがとう! – jyoseph

+1

実際、私は思ったほど集中的ではありません。私はサンプルスクリプトに圧倒されたと思う。 'new Date(image_updated_at).getTime()/ 1000'と同じくらい簡単だった – jyoseph

+0

@jyoseph:yea、js日付は、時代からのミリ秒を格納するので、1000で割ります。 – klew

0

さらに、image_updated_at.to_iを使用することもできます。また、エポックから秒が戻され、ファイルシステムには触れないという利点もあります。

関連する問題