播种存储在Faker中的S3中的个人资料图片

时间:2018-11-30 17:23:52

标签: ruby-on-rails amazon-s3 seeding faker

我正在使用Rails应用程序,我有一个has_one_attached的个人资料图片用于S3中的活动存储,我希望在为用户植入种子时从Faker收集其头像图像的数据。 这是种子代码:

return codecs.charmap_decode(input,self.errors,decoding_table)[0]

这是User aka Student的模型(此模型设置正确,并且在通过网站上传图像时有效):

20.times do
  Student.create(
      first_name: Faker::Name.first_name, 
      last_name: Faker::Name.last_name,
      phone_number: Faker::PhoneNumber.cell_phone,
      school_id: School.first.id,
      vehicle_make_model: Faker::Vehicle.make_and_model,
      vehicle_year: Faker::Vehicle.year,
      vehicle_color: Faker::Vehicle.color,
      email_address: Faker::Internet.email,
      password: "password", 
      email: Faker::Internet.email,
      profile_picture: Faker::Avatar.image
  ).save
end

我之前已经为其余数据设定了种子,并且可以正常工作,但是一旦我集成了S3并尝试以该数据作为种子,它就不再对我有用。

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

#seed_file
require 'open-uri'

def image_fetcher
    open(Faker::Avatar.image)
    rescue
    open("https://robohash.org/sitsequiquia.png?size=300x300&set=set1")
end

20.times do |n|
  s = Student.create(
     ...
     #remove profile_picture from here
  )

  s.profile_picture.attach({
     io: image_fetcher,
     filename: "#{n}_faker_image.jpg"
  })
end