回形针 - 它们如何创建附加到文件名的时间戳?

时间:2010-12-29 08:59:48

标签: ruby-on-rails paperclip ruby-on-rails-3

我使用Paperclip使用S3存储图像。据我所知,Paperclip会在图像末尾附加一个字符串(时间戳)以用于缓存目的。你知道他们用什么方法来创建字符串吗?我需要使用.js重建它,这就是原因:

我使用jQuery的$ .getJSON获取内容,解析响应数据,构建数组并将其添加到DOM。一切都很好用,但我需要将字符串添加到文件名的末尾。

以下是一个例子:

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

虽然URL是一个示例,但附加到文件名的字符串是实际的。以下是此图片的其他数据。

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

我认为它就像从image_updated_at属性剥离所有“:”和“ - ”一样容易,但看起来并不那么容易。它是完全随机的吗?有人对此有任何想法吗?我很感激一只手!

2 个答案:

答案 0 :(得分:3)

我查看了Rails source,此asset_id计算在此行中:

File.mtime(path).to_i.to_s 

所以它只是将Time对象转换为整数。并且ruby docs说它只是自纪元以来的秒数。

Here是如何将js中的日期转换为与ruby to_i中相同的格式的示例。我检查了它,它给出了相同的值。

答案 1 :(得分:0)

更好的是使用image_updated_at.to_i - 它还会从纪元返回秒数,并且还有一个不触及文件系统的优点。