私は通常、バグをテストして修正するために、本番データの db ダンプを取得します。ユーザーが自分のアバターをアップロードできるようにしているため、ユーザーのアバターを使用するページを読み込もうとすると、多くの 404 が返されます。これは私のテスト時間に影響するので、データベースからユーザーのアバターをすべてクリアしたいと考えています。これを行う簡単な方法はありますか?ペーパークリップを使用しています。
User.rb
has_attached_file :avatar
私は通常、バグをテストして修正するために、本番データの db ダンプを取得します。ユーザーが自分のアバターをアップロードできるようにしているため、ユーザーのアバターを使用するページを読み込もうとすると、多くの 404 が返されます。これは私のテスト時間に影響するので、データベースからユーザーのアバターをすべてクリアしたいと考えています。これを行う簡単な方法はありますか?ペーパークリップを使用しています。
User.rb
has_attached_file :avatar
jvnill が言うように、そのデータは手動で削除する必要があります。
ただし、多数のユーザーがいる場合は、それらすべてをループすると時間がかかります。
task clear_avatars: :environment do
User.update_all 'avatar = NULL'
end
SQL クエリを 1 つだけ実行し、すべてのアバターを削除しています。
これは、rake タスクを使用して対処するのが最適です。
avatars.rake
内部と呼ばれるファイルを作成します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
次に、端末で呼び出すだけです