lul*_*ala 14 ruby-on-rails carrierwave
我开始使用Carrierwave,我发现它在多个地方存储临时文件,具体取决于它是测试还是延迟工作.
如果在测试期间(rspec)完成,则临时文件将位于RAILS_ROOT/uploads/tmp目录中.
如果在延迟作业期间完成,则临时文件将为 RAILS_ROOT/public/uploads/tmp
首先,我认为这rails_root/tmp/uploads将是一个更明智的地方,甚至系统临时文件夹.
其次,测试与正常运行不同似乎是一个bug.
有没有办法解决这个问题(通过配置或猴子修补)?我可以把东西放在RAILS_ROOT/tmp文件夹中吗?
Art*_*rov 20
有config.cache_dir选项,您可以在"配置/初始化/ carrierwave.rb"设置.但它与'/ public'相关.看起来你应该在你的上传者中这样做:
class MyUploader < CarrierWave::Uploader::Base
  def cache_dir
    # should return path to cache dir
    Rails.root.join 'tmp/uploads'
  end
end
我使用carrierwave 0.10.0,似乎这个行为得到了解决.现在该cache_dir设置接受公共目录之外的路径:
CarrierWave.configure do |config|
  config.cache_dir = Rails.root.join 'tmp/uploads'
end
| 归档时间: | 
 | 
| 查看次数: | 10283 次 | 
| 最近记录: |