私はCarrierwaveを使い始めました。テストや遅延ジョブによって、複数の場所に一時ファイルが保存されていました。Carrierwaveのtempディレクトリがuploads/tmpフォルダに設定されています
テスト中に実行された場合(rspec)、一時ファイルはRAILS_ROOT/uploads/tmp
ディレクトリになります。
それが遅れて仕事中に行われた場合、一時ファイルがRAILS_ROOT/public/uploads/tmp
最初に、私はrails_root/tmp/uploads
がより賢明な場所、あるいはシステムの一時フォルダであろうと考えていただろう。
第2に、正常な実行とは異なるテストはバグのようです。
この問題を解決する方法はありますか(設定または猿のパッチのいずれか)?そして、RAILS_ROOT/tmpフォルダに物を置くことはできますか?
魅力的な作品です。これを有効にするには、アプリケーションを再起動する必要があります。 –
また、 'attr_writer cache_dir'をクラスに追加し、関数を' @cache_dir || 'に変更しました。 Rails.root.join 'tmp/uploads''は、インスタンスごとのオーバーライドを可能にします(開発ファイルからテストファイルを分離するのに便利です)。 – Leo
cache_dirとstore_dirの違いは何ですか? – Jwan622