我通常会得到我们生产数据的数据库转储来测试和修复错误。由于我们允许用户上传他们自己的头像,当我尝试加载使用用户头像的页面时,我会收到很多 404。这会影响我的测试时间,所以我想从数据库中清除所有用户的头像。是否有捷径可寻?我用回形针。
User.rb
has_attached_file :avatar
我通常会得到我们生产数据的数据库转储来测试和修复错误。由于我们允许用户上传他们自己的头像,当我尝试加载使用用户头像的页面时,我会收到很多 404。这会影响我的测试时间,所以我想从数据库中清除所有用户的头像。是否有捷径可寻?我用回形针。
User.rb
has_attached_file :avatar
最好使用 rake 任务来解决这个问题。
创建一个名为avatars.rake
inside的文件lib/tasks
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 查询并删除所有头像。