2016-02-02 3 views
0

Каков правильный способ удаления вложения через связанную модель?Удалить файл CarrierWave из связанной модели

У меня есть Profile.rb модель, которая has_one Модель Will.rb. Воля редактируется в том же виде, что и профиль. Я могу прикрепить файл, используя мое поле :will_attachment, но попытка использовать флажок :remove_will_attachment не работает.

Params структура выглядит следующим образом:

"portfolio" => 
{"will_attributes" => 
    {"remove_will_attachment" 
    } 
    } 

У меня есть :will_attachment и :remove_will_attachment в допустимом методе Params.

В настоящее время мне нужно удалить вложение, проверив remove_will_attachment == "1" в параметрах и вызывая вручную @portfolio.will.remove_will_attachment!, но, похоже, должен быть более плавный способ сделать это.

Я что-то упустил? Благодаря!

ответ

1

Это была ошибка в CarrierWave, которая решена на главной ветке. По какой-то причине он не удаляет загруженный файл, если установлен только атрибут атрибута remove_#{column}.

В CarrierWave 0,10, это не будет работать

"portfolio" => 
{"will_attributes" => 
    {"remove_will_attachment" => true 
    } 
} 

Это будет

"portfolio" => 
{"will_attributes" => 
    {"remove_will_attachment" => true, 
    "another_attribute" => "CHANGED VALUE" 
    } 
}