上传者:如何将自定义文件夹名称设置为用户 ID?

Uploader: How to set custom folder name equal to user id?

我已经实现了 CarrierWave 上传器,希望文件夹路径包含它所属组织的 ID。

在组织控制器中:

def create
  @organization = Organization.new(new_params)
  if @organization.save
    Image.upload_file(@organization.id)
  end
end

因此控制器方法将组织的 ID 传递给模型方法。 Image模型中的模型方法如下:

def self.upload_file(id)
  newimage = Image.new
  File.open('app/assets/emptyfile.xml') do |f|
    newimage.file_name = f    
  end
  newimage.organization_id = id
  newimage.save!
end

在图片上传器中我指定了文件夹路径:

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

我的问题:在此文件夹路径中,我想包含组织的 ID(作为参数传递给模型方法的 ID)而不是 model.id(这将是记录的 ID在 Image 模型中而不是 Organization 模型中记录的 id)。我该怎么做?

你用 model.organization_id 试过了吗?

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