2013-09-25 2 views
0

carrierewave Я использую, чтобы добавить пользователь аватар в моем приложенииCarrierwave Juste удалить файл, но не ясно, столбец базы данных

class User < ActiveRecord::Base 
    mount_uploader :avatar, AvatarUploader 
end 

так, когда я пытаюсь удалить аватар с remove_avatar способом он просто удалить файл, но не ясно, значение столбца базы данных

Я нашел дискуссию на ту же тему здесь: CarrierWave only deletes files, doesn't clear the column or clear the uploader, но это похоже на старую дискуссию (2 года назад), и, возможно, операторская поддержка обновлена, чтобы исправить эту проблему. любая идея, пожалуйста?

ответ

4

Вы пробовали следующее?

user.remove_avatar = true 
user.save 
+0

Да, уже это нашли и попробовал и сейчас работает, но не уверен, что это лучший способ! также вы забыли пропустить метод save, например: user.save! : D – medBo

+0

Альтернативой является запуск 'user.remove_avatar!' И 'user.update_column (: avatar, nil)', но я лично считаю, что это sketchier, чем выше. – Taavo

1

Просто добавьте к Taavo comment:

Обратите внимание, что при вызове .save, вы сохраните ВСЕ текущие изменения в записи (!). Итак, если вы редактируете запись, то хотите удалить аватар (т. Е. Через запрос AJAX), но НЕ хотите сохранять другие изменения - вы должны найти другой способ. Попробуйте user.update_attribute(:avatar, nil) вместо этого user.save

Смежные вопросы