Open7
Carrierwave with Faker::Avatar.image
Carrierwave使用時にダミー画像を登録するときにはまったのでめも
Faker::Avatar.image
の使い方は以下を参考にする
faker/avatar.md at master · faker-ruby/faker
ただし上記はurlを発行するだけ
最初は以下のような内容があり無理なのかなとおもった
ActiveStorageとFakerを利用した際に、画像を含めたテストをする方法 - Qiita
以下のキーワードで検索したらよさげなやつが見つかった
rails Faker::Avatar.image create - Google 検索
以下がドンピシャな内容
ruby on rails - extension_whitelist prevents Faker::Avatar.image - Stack Overflow
rubyの open-uri というライブラリを使用するらしい
あと extension_whitelist
を content_type_whitelist
に変えないとエラーが発生するらしい
open-uriの使い方(画像編)
RubyでWeb上の画像をダウンロードする方法を現役エンジニアが解説【初心者向け】 | TechAcademyマガジン
Ruby 画像をダウンロードする方法 | | KeruuWeb
open-uriを使用した場合はcloseするのがよさそう
Ruby open-uri の open の戻り値 - Qiita
最終的には以下のようなコードにした
app/models/user.rb
def self.create_account_as_guest
require "open-uri"
faker_user_name = Faker::Name.first_name
avatar = open(Faker::Avatar.image(slug: faker_user_name, size: "150x150", format: "jpg"))
self.create!(nickname: faker_user_name, profile_image: avatar, email: "#{faker_user_name}@example.com") do |u|
u.password = SecureRandom.urlsafe_base64
end
avatar.close
end