将文件上传到父文件夹(Carrierwave + s3)

时间:2014-07-28 18:04:19

标签: ruby-on-rails amazon-s3 carrierwave

我有一个附有上传器的模型“Image”。图像属于多个模型。我正在使用s3来托管我的文件。

现在我的路径是:“image / file.jpg”

上传图片后,我希望路径为“parent-model / image / file.jpg”。我怎么能做到这一点?

感谢。

file_uploader.rb

   def store_dir
      "#{model.class.to_s.underscore}"
   end

image.rb

class Image < ActiveRecord::Base
    belongs_to :imageable, :polymorphic => true

    mount_uploader :file, FileUploader
end

1 个答案:

答案 0 :(得分:0)

要将文件上传到正确的目录,您需要将store_dir方法更改为

def store_dir
  "#{model.imageable.class.to_s.underscore"/images/"
end

或者甚至

"#{model.imageable_type.underscore"/images/"

(你需要尝试第二个,如果以前持久存在,则应该有效。)