Я использую CarrierWave для загрузки файлов в мое приложение.
Я пытаюсь настроить базу данных по поддельным данным.
seed.rb
require "open-uri"
require 'openssl'
# https://github.com/stympy/faker/issues/763
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
puts 'Start inserting seed users...'
User.create!(name: "Example User",
username: "exampleuser",
email: "example@railstutorial.org",
website: "https://railstutorial.jp",
bio: Faker::Lorem.sentence(6),
phone: 99999999,
gender: 1,
avatar: open(Faker::Avatar.image(slug = nil, size = '300x300', format = 'jpg')),
password: "password",
password_confirmation: "password")
99.times do |n|
user = User.create!({
name: Faker::Name.name,
username: Faker::Internet.unique.user_name,
email: Faker::Internet.unique.email,
website: Faker::Internet.url,
bio: Faker::Lorem.sentence(6),
phone: Faker::PhoneNumber.cell_phone.to_i,
gender: 0,
avatar: open(Faker::Avatar.image(slug = nil, size = '300x300', format = 'png')),
password: "password",
password_confirmation: "password"
})
puts "#{user.username} created!"
end
puts "Start inserting seed posts..."
users = User.order(:created_at).take(6)
50.times do
users.each do |user|
post = user.posts.create!({
image: open(Faker::Avatar.image(slug = nil, size = '300x300', format = 'jpg')),
content: Faker::Lorem.sentence(5)
})
puts "#{post.user.username}'s post created!"
end
end
Когда я выполнил
bin/rails db:seed
, он возвращает
rails aborted!
ActiveRecord::RecordInvalid: Validation failed: Avatar You are not allowed to upload "" files, allowed types: jpg, jpeg, png
Итак, прокомментируйте приведенный ниже метод и попробуйте еще раз, чтобы он работал.
# def extension_whitelist
# %w(jpg jpeg png)
# end
НоЯ хочу использовать extension_whitelist
, чтобы предотвратить загрузку странных данных.
Как избежать extension_whitelist
при использовании Faker::Avatar.image
?