1

我用来carrierewave在我的应用程序中添加用户头像

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

所以,当我尝试使用remove_avatar方法删除头像时,它只是删除文件但不清除数据库列的值

我在这里找到了关于同一主题的讨论:CarrierWave 仅删除文件,不清除列或清除上传器,但它似乎是一个旧讨论(2 年前),也许 carrierewave 已更新以解决此问题。有什么想法吗?

4

2 回答 2

5

Have you tried the following?

user.remove_avatar = true
user.save
于 2013-09-25T16:58:32.127 回答
1

只需添加到Taavo 评论

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

于 2014-03-14T12:36:08.147 回答