gpt4 book ai didi

ruby-on-rails-3.1 - 是否可以使用载波进行动态存储路径?

转载 作者:行者123 更新时间:2023-12-01 11:54:29 24 4
gpt4 key购买 nike

我从 carrierwave 开始用于文件上传,到目前为止一直很满意。我的文件存储在 amazon s3 上,这非常简单,而且工作可靠。

现在我有一个名为 pictures 的模型和一个名为 MainUploader 的 uploader 。我需要一个特殊的动态路径来将这些文件保存到上传时。

我也在使用 devise,我有 current_user 我可以从我的 View 和 Controller 访问,但不能从 carrierwave uploader 访问。我需要文件的路径类似于

uploads/#{current_user.location}/#{current_user.first_name}/images

但我无法从 uploader 访问 current_user,也没有看到任何替代方法。 carrierwave 是否可以实现这种类型的动态路径(无需重写大量此 gem)?

非常感谢任何指点。感谢您的帮助。

最佳答案

以防万一其他人通过谷歌搜索或其他方式想知道这里。

我最后做的是在我的模型(图片)上创建一个 belongs_to 关系到用户模型。然后从载波 uploader 我可以做 model.user.first_name 这相当于 picture.user.first_name。所以我可以将该 model.user 放在我的路径中并以这种方式访问​​任何用户属性。希望这对其他人有帮助。

类似于:

def store_dir
"#{model.user.first_name}/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.title}"
end

附言请注意,我还使用了 model.title,因为我希望 picture.title 也位于路径中。虽然不是最佳实践。如果这样做,请确保在生产环境中解析 model.title,以便它为您提供有效的文件夹名称/URL。

关于ruby-on-rails-3.1 - 是否可以使用载波进行动态存储路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8470803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com