【问题标题】:Rails carrierwave upload directory per user basis每个用户的 Railscarrierwave 上传目录
【发布时间】:2012-07-26 13:19:09
【问题描述】:

我一直在尝试使用 Carrierwave 进行图像上传,效果很好,我只是想知道如何为每个用户创建一个上传目录,即:-

上传/current_user.id/gallery.id/

我有两张桌子,

图片

  • 身份证
  • 标题
  • 描述
  • gallery_id
  • created_at
  • updated_at

画廊

  • 身份证
  • 标题
  • 描述
  • user_id
  • created_at
  • updated_at

非常感谢

【问题讨论】:

    标签: ruby-on-rails carrierwave


    【解决方案1】:

    由于您提供的设置细节很少,我将根据我的回答做出假设。

    如果您有一些 Gallery 模型与相关上传者绑定,则上传者有一个 model 方法,该方法返回 Gallery 实例。我还将假设您的 Gallery 实例与某些 User 记录具有 owner 关系。您需要做的就是向您的上传器添加一个store_dir 方法,以重载默认的CarrierWave::Uploader::Base 提供。

    def store_dir
      "uploads/#{model.owner.id}/#{model.id}"
    end
    

    【讨论】:

    • 感谢 Deefour 的回复,我需要将用户 ID 添加到 images 表吗?
    • 我真的不知道,我的回答描述的是 a 场景,不一定是 your 场景。我还是不知道你的上传器绑定的是什么型号。
    • 我对 DeeFour 的含糊之处表示歉意,我对此非常陌生。我已经解决了这样的问题:-我的上传器已绑定到图像模型,因此我将图像的关系添加到用户模型,然后允许我在 store_dir 方法中使用用户 ID。再次感谢您的耐心等待
    • 不必为此目的而添加新的列/关系。您可以通过Image 实例的Gallery 所有者通过model.gallery.user 获取用户ID (取决于您的关系名称)
    • 至于含糊不清,我建议你阅读the faq的主题。如果您提供所有相关信息和代码,您将从更多人那里获得更好、更快的帮助。将您的问题从您的实际代码中抽象出来并不能帮助您获得您可能正在寻找的具体答案。
    猜你喜欢
    • 2017-04-25
    • 2012-01-26
    • 1970-01-01
    • 2016-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    相关资源
    最近更新 更多