【发布时间】:2012-07-26 13:19:09
【问题描述】:
我一直在尝试使用 Carrierwave 进行图像上传,效果很好,我只是想知道如何为每个用户创建一个上传目录,即:-
上传/current_user.id/gallery.id/
我有两张桌子,
图片
- 身份证
- 标题
- 描述
- gallery_id
- created_at
- updated_at
画廊
- 身份证
- 标题
- 描述
- user_id
- created_at
- updated_at
非常感谢
【问题讨论】:
我一直在尝试使用 Carrierwave 进行图像上传,效果很好,我只是想知道如何为每个用户创建一个上传目录,即:-
上传/current_user.id/gallery.id/
我有两张桌子,
图片
画廊
非常感谢
【问题讨论】:
由于您提供的设置细节很少,我将根据我的回答做出假设。
如果您有一些 Gallery 模型与相关上传者绑定,则上传者有一个 model 方法,该方法返回 Gallery 实例。我还将假设您的 Gallery 实例与某些 User 记录具有 owner 关系。您需要做的就是向您的上传器添加一个store_dir 方法,以重载默认的CarrierWave::Uploader::Base 提供。
def store_dir
"uploads/#{model.owner.id}/#{model.id}"
end
【讨论】:
Image 实例的Gallery 所有者通过model.gallery.user 获取用户ID (取决于您的关系名称)。