如何确保使用回形针上传的图像具有唯一的名称?

时间:2015-04-26 01:38:44

标签: ruby-on-rails ruby-on-rails-4 file-upload paperclip uniqueidentifier

我正在使用回形针来保存图像。我创建了一个图像模型,将它们保存到我的公共主管

class Image < ActiveRecord::Base
  has_attached_file :file,
                    :url => "assets/projects_description_images/:style/:basename.:extension",
                    :path => ":rails_root/public/assets/projects_description_images/:style/:basename.:extension"


  validates_attachment :file,
                       :presence => true,
                       content_type: {content_type: ["image/jpg", "image/jpeg", "image/png", "image/gif"]},
                       :size => {:in => 0..50.megabytes}
end

但是,如果我添加,我会创建一个名为&#34; main.jpg&#34;的图像。然后创建另一个名为&#34; main.jpg&#34;当显示首先创建的那个时,它会显示第二个。我无法知道将要使用的确切名称,但我可以肯定会有重复的名称。如果我可以将文件名保存为类似

的内容,那就太棒了

main_(unique_string).JPG

有任何线索如何做到这一点?

1 个答案:

答案 0 :(得分:1)

Andrey Turkin(trevorturk.com/2009/03/22/randomize-filename-in-paperclip)提供的答案解决了我的问题。有一点需要注意的是,使用rails 4.2我不得不改变  ActiveSupport::SecureRandom.hex(16) 只是

SecureRandom.hex(16)