CarrierWave文件在父关联中上载store_dir

时间:2016-08-04 18:32:03

标签: ruby-on-rails carrierwave

我在Request模型和Document模型之间建立了关联。每个请求has_many文档和每个文档belongs_to一个请求。上传文件并将其存储到文件夹中效果很好。目前,我的store_dir方法如下所示:

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

但是,我想知道如何通过request.id和model.id保存文件:

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

这可能吗?希望有人能指出我正确的方向。我不确定如何将请求ID传递给DocumentUploader。

如果需要提供更多信息,请告诉我们!

1 个答案:

答案 0 :(得分:3)

由于model是安装上传器的ActiveRecord实例,因此您应该能够使用ActiveRecord关联。由于您声明Document belongs_to一个Request(我假设Document是安装上传者的ActiveRecord),您可以获得Request的ID使用model.request_id(或model.request.id)。

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