Carrierwave アップロード用のテスト固有のストア ディレクトリを定義する方法に関する指示に従いました。これは、CarrierWave::Uploader::Base
クラスを開いて再定義することなどを提案してstore_dir
いcache_dir
ます。
if defined?(CarrierWave)
CarrierWave::Uploader::Base.descendants.each do |klass|
next if klass.anonymous?
klass.class_eval do
def cache_dir
"#{Rails.root}/spec/support/uploads/tmp"
end
def store_dir
"#{Rails.root}/spec/support/uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
end
end
これは魅力のように機能しますが、spork で rspec を実行すると、クラスの変更に失敗し、アップロードがデフォルトの場所に保存されます。なぜこれが起こっているのか、誰にも手がかりがありますか?