Tôi bắt đầu sử dụng Carrierwave và tôi phát hiện ra rằng nó lưu trữ các tệp tạm thời ở nhiều nơi tùy thuộc vào việc nó đang thử nghiệm hay trì hoãn công việc.Thư mục tạm thời của nhà cung cấp được thiết lập để tải lên/tmp thư mục
Nếu được thực hiện trong khi kiểm tra (rspec), các tệp tạm thời sẽ ở số RAILS_ROOT/uploads/tmp
thư mục.
Nếu nó được thực hiện trong việc trì hoãn, các tập tin tạm thời sẽ có mặt tại RAILS_ROOT/public/uploads/tmp
Trước tiên, tôi đã suy nghĩ rằng rails_root/tmp/uploads
sẽ là một nơi hợp lý hơn, hoặc thậm chí là hệ thống thư mục tạm thời.
Thứ hai, thử nghiệm khác với hoạt động bình thường có vẻ giống như một lỗi.
Có cách nào để sửa lỗi này (theo cấu hình hoặc vá khỉ) không? Và tôi có thể đưa mọi thứ vào thư mục RAILS_ROOT/tmp không?
Hoạt động như một sự quyến rũ. Lưu ý rằng bạn sẽ cần phải khởi động lại ứng dụng của bạn để điều này có hiệu lực. –
Tôi cũng đã thêm 'attr_writer cache_dir' vào lớp và thay đổi hàm thành' @cache_dir || Rails.root.join 'tmp/uploads'' để cho phép ghi đè mỗi trường hợp (hữu ích cho việc cô lập các tệp thử nghiệm từ các tệp phát triển). – Leo
Sự khác nhau giữa cache_dir và store_dir là gì? – Jwan622