Ho iniziato a utilizzare Carrierwave e ho scoperto che memorizza i file temporanei in più posizioni a seconda che si tratti di test o di un processo in ritardo.Carrierwave temp directory impostata su uploads/tmp folder
Se eseguito durante il test (rspec), i file temporanei saranno nella directory RAILS_ROOT/uploads/tmp
.
Se è fatto durante il lavoro in ritardo, i file temporanei saranno a RAILS_ROOT/public/uploads/tmp
In primo luogo, stavo pensando che rails_root/tmp/uploads
sarebbe un luogo più sensato, o anche la cartella temporanea di sistema.
In secondo luogo, il test è diverso da quello normale, sembra un bug.
C'è un modo per risolvere questo problema (sia per configurazione o patch di scimmia)? E posso mettere le cose nella cartella RAILS_ROOT/tmp?
Funziona come un fascino. Si noti che è necessario riavviare la propria applicazione affinché ciò avvenga. –
Ho anche aggiunto 'attr_writer cache_dir' alla classe e ho cambiato la funzione in' @cache_dir || Rails.root.join 'tmp/uploads'' per consentire sovrascritture per istanza (utile per isolare i file di test dai file di sviluppo). – Leo
Qual è la differenza tra cache_dir e store_dir? – Jwan622