Carrierwave动态存储类型通过模型属性

时间:2013-09-04 11:45:05

标签: ruby-on-rails-3 ruby-on-rails-3.2 carrierwave gridfs fog

我想将'grid_fs'和其他类型文件中的照片保存到'雾'中,例如:

class DocumentUploader < CarrierWave::Uploader::Base
  def storage
    if model.is_photograph == true
      :grid_fs
    else
      :fog
    end 
  end
end

这可能吗?

我想从模型属性动态分配存储类型,而且我已经 尝试了this,但是在类方法中无法访问模型及其属性。

谢谢!

1 个答案:

答案 0 :(得分:0)

快速回答是“不”。与store_dirvalidate_integrity等不同,storage不会通过add_config发送,也不会获得任何可以简化此事的instance-level magic

这可能是可能的,但我能提出的任何事情几乎肯定都是一个脆弱的黑客。您最好还是寻找支持该功能的其他方法(多个上传器?)或更改规范。