1

carrierewaveアプリにユーザーアバターを追加するために使用します

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

したがって、メソッドでアバターを削除しようとするとremove_avatar、ファイルは削除されますが、データベース列の値はクリアされません

私はここで同じ主題に関する議論を見つけました: CarrierWave はファイルを削除するだけで、列をクリアしたり、アップローダーをクリアしたりしませんが、古い議論 (2 年前) のようで、この問題を修正するために Carrierewave が更新されている可能性があります。アイデアはありますか?

4

2 に答える 2

5

次のことを試しましたか?

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 に答える