我通常获得生产数据的db转储以测试和修复错误。因为我们允许用户上传他们自己的头像,当我试图加载一个使用用户头像的页面时,我得到了很多404。这会影响我的测试时间,所以我想从数据库中清除所有用户的头像。有简单的方法吗?我在用回形针。
User.rb
has_attached_file :avatar
最好使用rake任务来解决这个问题。
在lib/tasks
中创建一个名为avatars.rake
的文件
desc "Clear all avatars"
task clear_avatars: :environment do
User.find_each do |user|
user.avatar = nil
user.save(validate: false)
end
end
然后在您的终端上调用rake clear_avatars
正如jvnill所说,应该手动删除该数据。
然而,如果你有很多用户,循环遍历他们会花费很多时间。
task clear_avatars: :environment do
User.update_all 'avatar = NULL'
end
您只执行一个SQL查询并删除所有的头像。