Rails, CarrierWave 将文件存储在哪里?

Rails, where does CarrierWave store files?

无法 find/understand 关于此的良好文档。我想知道 CarrierWave 完成的上传到哪里去了?根据我的理解,它直接进入数据库,对吧?我可以强制它在我的资产管道中存储(或创建对文件的引用)吗?今天遇到无法使用 image_tag 的问题,因为它仅从资产管道中获取资产。难道让用户在资产管道中存储文件可能具有潜在的风险和危害吗?

所以我的问题:

感谢分享!

如果您查看您的上传器,您会看到一个名为 store_dir 的方法,默认看起来像这样...

def store_dir
  "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end

因此,对于名为 "oranges.jpg" 的附件,在名为 FilmReview 的模型中的名为 image 的字段中,在 ID 为 45 的记录中,它存储在...

public/uploads/film_review/image/45/oranges.jpg

您可以更改 store_dir 以将图像存储在不同的目录中,或将其上传到 AWS 等云服务...有关如何执行此操作的示例,请参见 railscasts 或其他资源。