我使用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更新以解决这个问题。有什么想法吗?
答案 0 :(得分:5)
您是否尝试过以下操作?
user.remove_avatar = true
user.save
答案 1 :(得分:1)
只需添加到Taavo comment:
请注意,当您调用.save(!)时,会保存记录中的所有当前更改。
所以,如果你编辑记录,然后想要删除头像(即通过AJAX请求),但不想保存其他更改 - 你应该找到另一种方式。请尝试user.update_attribute(:avatar, nil)
而不是user.save