在ROR中为文件上载创建动态目录

时间:2015-05-11 06:14:33

标签: ruby-on-rails ruby mongodb ruby-on-rails-4

我使用mongoid回形针上传文档,上传时我需要选择目录(它将动态创建新文件夹或现有文件夹),并需要删除并创建文件夹,任何想法?有人这么做过吗?

1 个答案:

答案 0 :(得分:0)

如果您将文档目录存储在记录本身中,则可以使用Paperclip插值来实现您想要的效果。

以下是您可以执行此操作的方法(代码未经过测试,使用时风险自负):

class Doc
  include Mongoid::Document

  field :directory, type: String

  # create custom interpolation rule to fetch directory from the record itself
  Paperclip.interpolates :document_directory do |attachment, _|
      attachment.instance.directory
  end

  # now you can use :document_directory in your url and path
  has_mongoid_attached_file :doc, 
                            url: '/system/:document_directory/:id/:style/:id.:extension',
                            path: ':rails_root/public/system/:document_directory/:id/:style/:id.:extension',
                      # other Paperclip options
end

More about Paperclip interpolations.