В скрепке можно указать один хеш для разных стилей (миниатюра / оригинал) - PullRequest
2 голосов
/ 21 февраля 2012

У меня есть следующая модель, и я хотел бы, чтобы мои файлы загружались следующим образом:

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

Если я использовал, как показано ниже, хеш-код отличается для каждого файла;Я хотел бы, чтобы это было так же, и я мог бы сохранить его в базе данных в моей таблице активов.Я не беспокоюсь о безопасности файла.

код:

 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 голосов
/ 19 февраля 2015

Значение по умолчанию: hash_data:

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

Поэтому переопределите эту опцию и удалите :style и :updated_at.Тогда ваш хеш должен давать одинаковое значение для разных стилей.

...