Ну AFAIK remove_previously_stored_files_after_update
работать только тогда, когда объектная модель updated
поэтому установка его false
не удалить старые file
в течение update
Но в вашем случае, вы должны убедиться, файл все еще присутствует, когда соответствующий объект модели уничтожить
ну я не думаю, что там (если вы исследуете код here) является любой механизм, в настоящее время доступен в в Carrierwave
сделать
но вы можете перезаписать remove!
, чтобы достичь того же я предполагаю, что это предполагает создание attr_accessor
(который является флаг, чтобы решить, следует ли сохранить файл или удалить его)
Внутри нужной модели определит attr_accessor
(скажу keep_file)
и в желаемом загрузчике отменить удаление! Метод
class MyUploader < CarrierWave::Uploader::Base
def remove!
unless model.keep_file
super
end
end
end
и убедитесь, что вы установили attr_accessor
для объекта (если вы хотите сохранить удаленный файл), прежде чем уничтожить их
Пример
u = User.find(10)
u.keep_file = true
u.destroy
Это гарантирует, что файл убираются если запись удалена из базы данных
Сообщите мне, если это будет сделано лучше
Надежда эта помощь
Спасибо Дэйв, к сожалению, у меня уже было это, и он не работает. Любые мысли о том, почему это может потерпеть неудачу, у меня есть это в загрузчике. – nodrog
@DaveNewton Я не думаю, что он будет работать. Он работает только в случае обновления, не удаляя запись. – Viren