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 或其他资源。
无法 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 或其他资源。