Carrierwave juste删除文件但不清除数据库列

时间:2013-09-25 15:39:25

标签: ruby-on-rails carrierwave

我使用carrierewave在我的应用中添加用户头像

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年前),也许carrierewave更新以解决这个问题。有什么想法吗?

2 个答案:

答案 0 :(得分:5)

您是否尝试过以下操作?

user.remove_avatar = true
user.save

答案 1 :(得分:1)

只需添加到Taavo comment

请注意,当您调用.save(!)时,会保存记录中的所有当前更改。 所以,如果你编辑记录,然后想要删除头像(即通过AJAX请求),但不想保存其他更改 - 你应该找到另一种方式。请尝试user.update_attribute(:avatar, nil)而不是user.save