回形针可以为不同的样式指定单个哈希(缩略图/原始)

时间:2012-02-21 18:07:34

标签: ruby-on-rails paperclip

我有以下型号,并希望我的文件上传如下:

/images/1/123abc_name_original.jpg
/images/1/123abc_name_medium.jpg
/images/1/123abc_name_thumb.jpg

如果我使用如下,则:hash对每个文件都不同;我希望它是相同的,并能够将其保存到我的资产表中的数据库。我不关心文件的安全性。

代码:

 Paperclip.interpolates :global_path  do |attachment, style|
     attachment.instance.assetable.global_id
  end

  Paperclip.interpolates :val  do |attachment, style|
    jt=:basename
    Digest::MD5.hexdigest(jt)
  end


has_attached_file :asset, 
  :hash_secret => "jtsomething",
  :url => "/images/:global_path/:hash_:basename_:style.:extension",
  :path => UPLOAD_PATH + "/:global_path/:hash_:basename_:style.:extension",
  :styles => { :medium => "200x200>", :thumb => "75x75>", :bigthumb => "125x125"  

  }

即使是一致的时间戳也会很棒:

Paperclip.interpolates :my_hash  do |attachment, style|
  Time.now.to_i.to_s
end

对于不同的样式,回形针将采用不同的时间戳。它应该是一致的。

我可能错过了如何做到这一点。

THX

1 个答案:

答案 0 :(得分:0)

默认值:hash_data为:

:hash_data=>":class/:attachment/:id/:style/:updated_at"

因此,请覆盖此选项并移除:style:updated_at。那么你的哈希应该为不同的样式产生相同的值。